aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-06-02 01:10:45 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-06-02 01:10:45 +0000
commitec44df6fff65ca687296f303110c1d3938e104cd (patch)
treea00c94cd5e7378ab4a6c72aeebe070d3b3d3d735
parentff82025036b0ff5fb6e4362e31842285263a02ca (diff)
parent7288081543522bc03893d1e47cca5950f607d9c4 (diff)
downloadswiftshader-android-cts-11.0_r5.tar.gz
Snap for 6549063 from 7288081543522bc03893d1e47cca5950f607d9c4 to rvc-releaseandroid-vts-11.0_r9android-vts-11.0_r8android-vts-11.0_r7android-vts-11.0_r6android-vts-11.0_r5android-vts-11.0_r4android-vts-11.0_r3android-vts-11.0_r2android-vts-11.0_r16android-vts-11.0_r15android-vts-11.0_r14android-vts-11.0_r13android-vts-11.0_r12android-vts-11.0_r11android-vts-11.0_r10android-vts-11.0_r1android-security-11.0.0_r76android-security-11.0.0_r75android-security-11.0.0_r74android-security-11.0.0_r73android-security-11.0.0_r72android-security-11.0.0_r71android-security-11.0.0_r70android-security-11.0.0_r69android-security-11.0.0_r68android-security-11.0.0_r67android-security-11.0.0_r66android-security-11.0.0_r65android-security-11.0.0_r64android-security-11.0.0_r63android-security-11.0.0_r62android-security-11.0.0_r61android-security-11.0.0_r60android-security-11.0.0_r59android-security-11.0.0_r58android-security-11.0.0_r57android-security-11.0.0_r56android-security-11.0.0_r55android-security-11.0.0_r54android-security-11.0.0_r53android-security-11.0.0_r52android-security-11.0.0_r51android-security-11.0.0_r50android-security-11.0.0_r49android-security-11.0.0_r1android-cts-11.0_r9android-cts-11.0_r8android-cts-11.0_r7android-cts-11.0_r6android-cts-11.0_r5android-cts-11.0_r4android-cts-11.0_r3android-cts-11.0_r2android-cts-11.0_r16android-cts-11.0_r15android-cts-11.0_r14android-cts-11.0_r13android-cts-11.0_r12android-cts-11.0_r11android-cts-11.0_r10android-cts-11.0_r1android-11.0.0_r5android-11.0.0_r4android-11.0.0_r3android-11.0.0_r25android-11.0.0_r2android-11.0.0_r17android-11.0.0_r1android11-tests-releaseandroid11-security-releaseandroid11-s1-releaseandroid11-release
Change-Id: Id6521dd58ba1158dd067756dd4d602a2e432382d
-rw-r--r--src/Common/GrallocAndroid.cpp2
-rw-r--r--src/System/GrallocAndroid.cpp2
-rw-r--r--src/Vulkan/VkImage.cpp19
3 files changed, 19 insertions, 4 deletions
diff --git a/src/Common/GrallocAndroid.cpp b/src/Common/GrallocAndroid.cpp
index 08c2ece2e..963085c59 100644
--- a/src/Common/GrallocAndroid.cpp
+++ b/src/Common/GrallocAndroid.cpp
@@ -90,7 +90,7 @@ int GrallocModule::release(buffer_handle_t handle)
if (m_gralloc4_mapper != nullptr)
{
native_handle_t* native_handle = const_cast<native_handle_t*>(handle);
- return m_gralloc4_mapper->freeBuffer(native_handle).isOk();
+ return m_gralloc4_mapper->freeBuffer(native_handle).isOk() ? 0 : 1;
}
#endif
diff --git a/src/System/GrallocAndroid.cpp b/src/System/GrallocAndroid.cpp
index 08c2ece2e..963085c59 100644
--- a/src/System/GrallocAndroid.cpp
+++ b/src/System/GrallocAndroid.cpp
@@ -90,7 +90,7 @@ int GrallocModule::release(buffer_handle_t handle)
if (m_gralloc4_mapper != nullptr)
{
native_handle_t* native_handle = const_cast<native_handle_t*>(handle);
- return m_gralloc4_mapper->freeBuffer(native_handle).isOk();
+ return m_gralloc4_mapper->freeBuffer(native_handle).isOk() ? 0 : 1;
}
#endif
diff --git a/src/Vulkan/VkImage.cpp b/src/Vulkan/VkImage.cpp
index 7c2872a63..1b287b6a5 100644
--- a/src/Vulkan/VkImage.cpp
+++ b/src/Vulkan/VkImage.cpp
@@ -190,7 +190,17 @@ VkResult Image::prepareForExternalUseANDROID() const
void *nativeBuffer = nullptr;
VkExtent3D extent = getMipLevelExtent(VK_IMAGE_ASPECT_COLOR_BIT, 0);
- if(GrallocModule::getInstance()->lock(backingMemory.nativeHandle, GRALLOC_USAGE_SW_WRITE_OFTEN, 0, 0, extent.width, extent.height, &nativeBuffer) != 0)
+ buffer_handle_t importedBufferHandle = nullptr;
+ if(GrallocModule::getInstance()->import(backingMemory.nativeHandle, &importedBufferHandle) != 0)
+ {
+ return VK_ERROR_OUT_OF_DATE_KHR;
+ }
+ if(!importedBufferHandle)
+ {
+ return VK_ERROR_OUT_OF_DATE_KHR;
+ }
+
+ if(GrallocModule::getInstance()->lock(importedBufferHandle, GRALLOC_USAGE_SW_WRITE_OFTEN, 0, 0, extent.width, extent.height, &nativeBuffer) != 0)
{
return VK_ERROR_OUT_OF_DATE_KHR;
}
@@ -211,7 +221,12 @@ VkResult Image::prepareForExternalUseANDROID() const
memcpy(dstBuffer + (i * bufferRowBytes), srcBuffer + (i * imageRowBytes), imageRowBytes);
}
- if(GrallocModule::getInstance()->unlock(backingMemory.nativeHandle) != 0)
+ if(GrallocModule::getInstance()->unlock(importedBufferHandle) != 0)
+ {
+ return VK_ERROR_OUT_OF_DATE_KHR;
+ }
+
+ if (GrallocModule::getInstance()->release(importedBufferHandle) != 0)
{
return VK_ERROR_OUT_OF_DATE_KHR;
}