diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-27 23:07:03 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-27 23:07:03 +0000 |
commit | 77decb57a52c405fe1b8317192d1a49417f36ae3 (patch) | |
tree | 727f7dcdcc75803d50bb8d3aa2924ce8060507b8 | |
parent | 2be6f0c382631410b96fdab72a953794fe6c600f (diff) | |
parent | bc45a54d096965a4ce648f82d878079fc14be090 (diff) | |
download | deqp-android12L-d2-s2-release.tar.gz |
Snap for 7859607 from bc45a54d096965a4ce648f82d878079fc14be090 to sc-d2-releaseandroid-12.1.0_r26android-12.1.0_r25android-12.1.0_r24android-12.1.0_r23android-12.1.0_r18android-12.1.0_r17android-12.1.0_r16android-12.1.0_r15android-12.1.0_r14android-12.1.0_r13android-12.1.0_r12android12L-d2-s8-releaseandroid12L-d2-s7-releaseandroid12L-d2-s6-releaseandroid12L-d2-s5-releaseandroid12L-d2-s4-releaseandroid12L-d2-s3-releaseandroid12L-d2-s2-releaseandroid12L-d2-s1-releaseandroid12L-d2-release
Change-Id: I6610c287cd6bd972b2de5f99cbbcb829d048d902
35 files changed, 274 insertions, 247 deletions
diff --git a/android/cts/AndroidTest.xml b/android/cts/AndroidTest.xml index 9233af6e4..2bacc4af8 100644 --- a/android/cts/AndroidTest.xml +++ b/android/cts/AndroidTest.xml @@ -27,7 +27,7 @@ <option key="parameter" name="config-descriptor:metadata" value="not_instant_app"/> <option key="parameter" name="config-descriptor:metadata" value="multi_abi"/> <option key="parameter" name="config-descriptor:metadata" value="secondary_user"/> - <option name="config-descriptor:metadata" key="parameter" value="no_foldable_states" /> + <option key="parameter" name="config-descriptor:metadata" value="no_foldable_states"/> <object class="com.android.tradefed.testtype.suite.module.TestFailureModuleController" type="module_controller"> <option name="screenshot-on-failure" value="false"/> </object> diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt index c63235cf2..1662414b1 100644 --- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt +++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt @@ -129,6 +129,7 @@ dEQP-GLES2.functional.light_amount.10omni dEQP-GLES2.functional.light_amount.12omni dEQP-GLES2.functional.light_amount.14omni dEQP-GLES2.functional.light_amount.16omni +dEQP-GLES2.functional.multisampled_render_to_texture.readpixels dEQP-GLES2.functional.shaders.preprocessor.basic.correct_phases_vertex dEQP-GLES2.functional.shaders.preprocessor.basic.correct_phases_fragment dEQP-GLES2.functional.shaders.preprocessor.basic.invalid_identifier_vertex diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles2-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles2-master.txt index c63235cf2..1662414b1 100644 --- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles2-master.txt +++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/gles2-master.txt @@ -129,6 +129,7 @@ dEQP-GLES2.functional.light_amount.10omni dEQP-GLES2.functional.light_amount.12omni dEQP-GLES2.functional.light_amount.14omni dEQP-GLES2.functional.light_amount.16omni +dEQP-GLES2.functional.multisampled_render_to_texture.readpixels dEQP-GLES2.functional.shaders.preprocessor.basic.correct_phases_vertex dEQP-GLES2.functional.shaders.preprocessor.basic.correct_phases_fragment dEQP-GLES2.functional.shaders.preprocessor.basic.invalid_identifier_vertex diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt index c63235cf2..1662414b1 100644 --- a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt +++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt @@ -129,6 +129,7 @@ dEQP-GLES2.functional.light_amount.10omni dEQP-GLES2.functional.light_amount.12omni dEQP-GLES2.functional.light_amount.14omni dEQP-GLES2.functional.light_amount.16omni +dEQP-GLES2.functional.multisampled_render_to_texture.readpixels dEQP-GLES2.functional.shaders.preprocessor.basic.correct_phases_vertex dEQP-GLES2.functional.shaders.preprocessor.basic.correct_phases_fragment dEQP-GLES2.functional.shaders.preprocessor.basic.invalid_identifier_vertex diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-loops-switch-fallthrough.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-loops-switch-fallthrough.amber index 7cbee38da..91b21003f 100644 --- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-loops-switch-fallthrough.amber +++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-loops-switch-fallthrough.amber @@ -543,13 +543,13 @@ BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics variant_pipeline ATTACH variant_vertex_shader ATTACH variant_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 64 64 BIND BUFFER variant_framebuffer AS color LOCATION 0 BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR variant_pipeline 0 0 0 255 CLEAR variant_pipeline -RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 64 64 -EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255 +EXPECT variant_framebuffer IDX 0 0 SIZE 64 64 EQ_RGBA 255 0 0 255 diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-access-chains.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-access-chains.amber index 496062250..fa77d836b 100644 --- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-access-chains.amber +++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-access-chains.amber @@ -644,7 +644,7 @@ END # resolution BUFFER reference_resolution DATA_TYPE vec2<float> DATA - 256.0 256.0 + 64.0 64.0 END BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM @@ -652,14 +652,14 @@ BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics reference_pipeline ATTACH reference_vertex_shader ATTACH reference_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 64 64 BIND BUFFER reference_framebuffer AS color LOCATION 0 BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR reference_pipeline 0 0 0 255 CLEAR reference_pipeline -RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 64 64 SHADER vertex variant_vertex_shader PASSTHROUGH @@ -1287,7 +1287,7 @@ END # resolution BUFFER variant_resolution DATA_TYPE vec2<float> DATA - 256.0 256.0 + 64.0 64.0 END BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM @@ -1295,13 +1295,13 @@ BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics variant_pipeline ATTACH variant_vertex_shader ATTACH variant_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 64 64 BIND BUFFER variant_framebuffer AS color LOCATION 0 BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR variant_pipeline 0 0 0 255 CLEAR variant_pipeline -RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 64 64 EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-copy-object.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-copy-object.amber index 7286518c9..fa4af4ae0 100644 --- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-copy-object.amber +++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-copy-object.amber @@ -644,7 +644,7 @@ END # resolution BUFFER reference_resolution DATA_TYPE vec2<float> DATA - 256.0 256.0 + 64.0 64.0 END BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM @@ -652,14 +652,14 @@ BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics reference_pipeline ATTACH reference_vertex_shader ATTACH reference_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 64 64 BIND BUFFER reference_framebuffer AS color LOCATION 0 BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR reference_pipeline 0 0 0 255 CLEAR reference_pipeline -RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 64 64 SHADER vertex variant_vertex_shader PASSTHROUGH @@ -1288,7 +1288,7 @@ END # resolution BUFFER variant_resolution DATA_TYPE vec2<float> DATA - 256.0 256.0 + 64.0 64.0 END BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM @@ -1296,13 +1296,13 @@ BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics variant_pipeline ATTACH variant_vertex_shader ATTACH variant_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 64 64 BIND BUFFER variant_framebuffer AS color LOCATION 0 BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR variant_pipeline 0 0 0 255 CLEAR variant_pipeline -RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 64 64 EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-dead-break-and-unroll.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-dead-break-and-unroll.amber index 6bf3d1903..07d752d30 100644 --- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-dead-break-and-unroll.amber +++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-dead-break-and-unroll.amber @@ -644,7 +644,7 @@ END # resolution BUFFER reference_resolution DATA_TYPE vec2<float> DATA - 256.0 256.0 + 64.0 64.0 END BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM @@ -652,14 +652,14 @@ BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics reference_pipeline ATTACH reference_vertex_shader ATTACH reference_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 64 64 BIND BUFFER reference_framebuffer AS color LOCATION 0 BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR reference_pipeline 0 0 0 255 CLEAR reference_pipeline -RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 64 64 SHADER vertex variant_vertex_shader PASSTHROUGH @@ -1296,7 +1296,7 @@ END # resolution BUFFER variant_resolution DATA_TYPE vec2<float> DATA - 256.0 256.0 + 64.0 64.0 END BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM @@ -1304,13 +1304,13 @@ BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics variant_pipeline ATTACH variant_vertex_shader ATTACH variant_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 64 64 BIND BUFFER variant_framebuffer AS color LOCATION 0 BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR variant_pipeline 0 0 0 255 CLEAR variant_pipeline -RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 64 64 EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-stable-maze-flatten-copy-composite.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-stable-maze-flatten-copy-composite.amber index eadf828fb..303cc8dfa 100644 --- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-stable-maze-flatten-copy-composite.amber +++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/spv-stable-maze-flatten-copy-composite.amber @@ -647,7 +647,7 @@ END # resolution BUFFER reference_resolution DATA_TYPE vec2<float> STD140 DATA - 256.0 256.0 + 32.0 32.0 END BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM @@ -655,14 +655,14 @@ BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics reference_pipeline ATTACH reference_vertex_shader ATTACH reference_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 32 32 BIND BUFFER reference_framebuffer AS color LOCATION 0 BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR reference_pipeline 0 0 0 255 CLEAR reference_pipeline -RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 32 32 SHADER vertex variant_vertex_shader PASSTHROUGH @@ -1341,7 +1341,7 @@ END # resolution BUFFER variant_resolution DATA_TYPE vec2<float> STD140 DATA - 256.0 256.0 + 32.0 32.0 END BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM @@ -1349,14 +1349,14 @@ BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics variant_pipeline ATTACH variant_vertex_shader ATTACH variant_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 32 32 BIND BUFFER variant_framebuffer AS color LOCATION 0 BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR variant_pipeline 0 0 0 255 CLEAR variant_pipeline -RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 32 32 SHADER vertex variant_2_vertex_shader PASSTHROUGH @@ -1990,7 +1990,7 @@ END # resolution BUFFER variant_2_resolution DATA_TYPE vec2<float> STD140 DATA - 256.0 256.0 + 32.0 32.0 END BUFFER variant_2_framebuffer FORMAT B8G8R8A8_UNORM @@ -1998,14 +1998,14 @@ BUFFER variant_2_framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics variant_2_pipeline ATTACH variant_2_vertex_shader ATTACH variant_2_fragment_shader - FRAMEBUFFER_SIZE 256 256 + FRAMEBUFFER_SIZE 32 32 BIND BUFFER variant_2_framebuffer AS color LOCATION 0 BIND BUFFER variant_2_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 END CLEAR_COLOR variant_2_pipeline 0 0 0 255 CLEAR variant_2_pipeline -RUN variant_2_pipeline DRAW_RECT POS 0 0 SIZE 256 256 +RUN variant_2_pipeline DRAW_RECT POS 0 0 SIZE 32 32 EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_2_framebuffer TOLERANCE 0.005 diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/entrypoint/comp_workgroup_entry_point.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/entrypoint/comp_workgroup_entry_point.amber index 074624428..1993946a5 100644 --- a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/entrypoint/comp_workgroup_entry_point.amber +++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/entrypoint/comp_workgroup_entry_point.amber @@ -17,6 +17,7 @@ VK_KHR_spirv_1_4 ; ; void main() { ; atomicExchange(wg_data[gl_LocalInvocationIndex], gl_LocalInvocationIndex); +; barrier(); ; uint val = atomicExchange(wg_data[(gl_LocalInvocationIndex+1)%4], 0); ; x[gl_LocalInvocationIndex] = val; ; } @@ -62,6 +63,7 @@ VK_KHR_spirv_1_4 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint %v3uint = OpTypeVector %uint 3 %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 %gl_WorkGroupSize = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_1 %main = OpFunction %void None %3 %5 = OpLabel @@ -70,6 +72,7 @@ VK_KHR_spirv_1_4 %15 = OpAccessChain %_ptr_Workgroup_uint %wg_data %13 %16 = OpLoad %uint %gl_LocalInvocationIndex %19 = OpAtomicExchange %uint %15 %uint_1 %uint_0 %16 + OpControlBarrier %uint_2 %uint_2 %uint_264 %22 = OpLoad %uint %gl_LocalInvocationIndex %23 = OpIAdd %uint %22 %uint_1 %24 = OpUMod %uint %23 %uint_4 @@ -88,4 +91,4 @@ ssbo 0:1 subdata int 0 -1 -1 -1 -1 compute entrypoint main compute 1 1 1 -probe ssbo int 0:1 0 == 1 2 3 0
\ No newline at end of file +probe ssbo int 0:1 0 == 1 2 3 0 diff --git a/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp b/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp index d3d5a59c0..1402dba18 100644 --- a/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp +++ b/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp @@ -1840,7 +1840,8 @@ void TopLevelAccelerationStructureKHR::create (const DeviceInterface& vk, if (m_useArrayOfPointers) { - const VkBufferCreateInfo bufferCreateInfo = makeBufferCreateInfo(m_bottomLevelInstances.size() * sizeof(VkDeviceOrHostAddressConstKHR), VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT); + const size_t pointerSize = (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR) ? sizeof(VkDeviceOrHostAddressConstKHR::deviceAddress) : sizeof(VkDeviceOrHostAddressConstKHR::hostAddress); + const VkBufferCreateInfo bufferCreateInfo = makeBufferCreateInfo(static_cast<VkDeviceSize>(m_bottomLevelInstances.size() * pointerSize), VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT); m_instanceAddressBuffer = de::MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress)); } @@ -2090,8 +2091,8 @@ void TopLevelAccelerationStructureKHR::prepareInstances (const DeviceInterface& VkDeviceOrHostAddressConstKHR currentInstance; currentInstance.deviceAddress = firstInstance.deviceAddress + instanceNdx * sizeof(VkAccelerationStructureInstanceKHR); - deMemcpy(&bufferStart[bufferOffset], ¤tInstance, sizeof(VkDeviceOrHostAddressConstKHR)); - bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR); + deMemcpy(&bufferStart[bufferOffset], ¤tInstance, sizeof(VkDeviceOrHostAddressConstKHR::deviceAddress)); + bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR::deviceAddress); } flushMappedMemoryRange(vk, device, m_instanceAddressBuffer->getAllocation().getMemory(), m_instanceAddressBuffer->getAllocation().getOffset(), VK_WHOLE_SIZE); @@ -2116,8 +2117,8 @@ void TopLevelAccelerationStructureKHR::prepareInstances (const DeviceInterface& VkDeviceOrHostAddressConstKHR currentInstance; currentInstance.hostAddress = (deUint8*)m_instanceBuffer->getAllocation().getHostPtr() + instanceNdx * sizeof(VkAccelerationStructureInstanceKHR); - deMemcpy(&bufferStart[bufferOffset], ¤tInstance, sizeof(VkDeviceOrHostAddressConstKHR)); - bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR); + deMemcpy(&bufferStart[bufferOffset], ¤tInstance, sizeof(VkDeviceOrHostAddressConstKHR::hostAddress)); + bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR::hostAddress); } instancesData = makeDeviceOrHostAddressConstKHR(m_instanceAddressBuffer->getAllocation().getHostPtr()); } diff --git a/external/vulkancts/framework/vulkan/vkRenderDocUtil.cpp b/external/vulkancts/framework/vulkan/vkRenderDocUtil.cpp index a4423b4ad..f6ba0a59b 100644 --- a/external/vulkancts/framework/vulkan/vkRenderDocUtil.cpp +++ b/external/vulkancts/framework/vulkan/vkRenderDocUtil.cpp @@ -35,6 +35,8 @@ #if (DE_OS == DE_OS_WIN32) # define RENDERDOC_LIBRARY_NAME "renderdoc.dll" +#elif (DE_OS == DE_OS_ANDROID) +# define RENDERDOC_LIBRARY_NAME "libVkLayer_GLES_RenderDoc.so" #else # define RENDERDOC_LIBRARY_NAME "librenderdoc.so" #endif diff --git a/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp index 77b076a33..9196af561 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp @@ -4256,9 +4256,9 @@ tcu::TestStatus testAndroidHardwareBufferImageFormat (Context& context, vk::VkF context.getTestContext().touchWatchdog(); } - if (properties.imageFormatProperties.maxMipLevels > 1u) + if (properties.imageFormatProperties.maxMipLevels >= 7u) { - const vk::Unique<vk::VkImage> image (createExternalImage(vkd, *device, queueFamilyIndex, externalMemoryType, format, 64u, 64u, tiling, createFlag, usage, properties.imageFormatProperties.maxMipLevels)); + const vk::Unique<vk::VkImage> image (createExternalImage(vkd, *device, queueFamilyIndex, externalMemoryType, format, 64u, 64u, tiling, createFlag, usage, 7u)); const vk::VkMemoryRequirements requirements (getImageMemoryRequirements(vkd, *device, *image, externalMemoryType)); const deUint32 exportedMemoryTypeIndex (chooseMemoryType(requirements.memoryTypeBits)); const vk::Unique<vk::VkDeviceMemory> memory (allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, externalMemoryType, *image)); diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.cpp index 6fad4f026..3fc330ad0 100644 --- a/external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.cpp @@ -598,6 +598,9 @@ public: if (m_params.depthClampEnable) context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_DEPTH_CLAMP); + if (m_params.depthBiasEnable && m_params.depthBiasClamp != 0.0f) + context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_DEPTH_BIAS_CLAMP); + if (m_params.minDepth > 1.0f || m_params.minDepth < 0.0f || m_params.maxDepth > 1.0f || m_params.maxDepth < 0.0f) context.requireDeviceFunctionality("VK_EXT_depth_range_unrestricted"); } diff --git a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRatePixelConsistency.cpp b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRatePixelConsistency.cpp index 04929d459..229cb5d95 100644 --- a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRatePixelConsistency.cpp +++ b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRatePixelConsistency.cpp @@ -1103,23 +1103,43 @@ tcu::TestStatus FSRPixelConsistencyInstance::iterate (void) Move<VkCommandPool> cmdPool = createCommandPool(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, m_context.getUniversalQueueFamilyIndex()); Move<VkCommandBuffer> cmdBuffer = allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY); - VkImageMemoryBarrier preImageBarrier = + VkImageMemoryBarrier preImageBarriers[] = { - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // VkStructureType sType - DE_NULL, // const void* pNext - 0u, // VkAccessFlags srcAccessMask - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags dstAccessMask - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout - VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout - VK_QUEUE_FAMILY_IGNORED, // uint32_t srcQueueFamilyIndex - VK_QUEUE_FAMILY_IGNORED, // uint32_t dstQueueFamilyIndex - **cbImagePass0, // VkImage image { - VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask - 0u, // uint32_t baseMipLevel - VK_REMAINING_MIP_LEVELS, // uint32_t mipLevels, - 0u, // uint32_t baseArray - VK_REMAINING_ARRAY_LAYERS, // uint32_t arraySize + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // VkStructureType sType + DE_NULL, // const void* pNext + 0u, // VkAccessFlags srcAccessMask + VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags dstAccessMask + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout + VK_QUEUE_FAMILY_IGNORED, // uint32_t srcQueueFamilyIndex + VK_QUEUE_FAMILY_IGNORED, // uint32_t dstQueueFamilyIndex + **cbImagePass0, // VkImage image + { + VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask + 0u, // uint32_t baseMipLevel + VK_REMAINING_MIP_LEVELS, // uint32_t mipLevels, + 0u, // uint32_t baseArray + VK_REMAINING_ARRAY_LAYERS, // uint32_t arraySize + } + }, + { + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // VkStructureType sType + DE_NULL, // const void* pNext + 0u, // VkAccessFlags srcAccessMask + VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags dstAccessMask + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout + VK_QUEUE_FAMILY_IGNORED, // uint32_t srcQueueFamilyIndex + VK_QUEUE_FAMILY_IGNORED, // uint32_t dstQueueFamilyIndex + **cbImagePass1, // VkImage image + { + VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask + 0u, // uint32_t baseMipLevel + VK_REMAINING_MIP_LEVELS, // uint32_t mipLevels, + 0u, // uint32_t baseArray + VK_REMAINING_ARRAY_LAYERS, // uint32_t arraySize + } } }; @@ -1130,15 +1150,7 @@ tcu::TestStatus FSRPixelConsistencyInstance::iterate (void) (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, - 1, &preImageBarrier); - - preImageBarrier.image = **cbImagePass1; - - vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, - (VkDependencyFlags)0, - 0, (const VkMemoryBarrier*)DE_NULL, - 0, (const VkBufferMemoryBarrier*)DE_NULL, - 1, &preImageBarrier); + sizeof(preImageBarriers) / sizeof(preImageBarriers[0]), preImageBarriers); // Clear both images to UINT_MAX VkImageSubresourceRange range = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u); @@ -1147,6 +1159,53 @@ tcu::TestStatus FSRPixelConsistencyInstance::iterate (void) vk.cmdClearColorImage(*cmdBuffer, **cbImagePass0, VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &range); vk.cmdClearColorImage(*cmdBuffer, **cbImagePass1, VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &range); + // Barrier between the clear and the rendering + VkImageMemoryBarrier clearColorBarriers[] = + { + { + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // VkStructureType sType + DE_NULL, // const void* pNext + VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags srcAccessMask + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags dstAccessMask + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout + VK_QUEUE_FAMILY_IGNORED, // uint32_t srcQueueFamilyIndex + VK_QUEUE_FAMILY_IGNORED, // uint32_t dstQueueFamilyIndex + **cbImagePass0, // VkImage image + { + VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask + 0u, // uint32_t baseMipLevel + VK_REMAINING_MIP_LEVELS, // uint32_t mipLevels, + 0u, // uint32_t baseArray + VK_REMAINING_ARRAY_LAYERS, // uint32_t arraySize + } + }, + { + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // VkStructureType sType + DE_NULL, // const void* pNext + VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags srcAccessMask + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags dstAccessMask + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout oldLayout + VK_IMAGE_LAYOUT_GENERAL, // VkImageLayout newLayout + VK_QUEUE_FAMILY_IGNORED, // uint32_t srcQueueFamilyIndex + VK_QUEUE_FAMILY_IGNORED, // uint32_t dstQueueFamilyIndex + **cbImagePass1, // VkImage image + { + VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask + 0u, // uint32_t baseMipLevel + VK_REMAINING_MIP_LEVELS, // uint32_t mipLevels, + 0u, // uint32_t baseArray + VK_REMAINING_ARRAY_LAYERS, // uint32_t arraySize + } + } + }; + + vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + (VkDependencyFlags)0, + 0, (const VkMemoryBarrier*)DE_NULL, + 0, (const VkBufferMemoryBarrier*)DE_NULL, + sizeof(clearColorBarriers) / sizeof(clearColorBarriers[0]), clearColorBarriers); + beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_data.framebufferExtent.width, m_data.framebufferExtent.height), 0, DE_NULL, VK_SUBPASS_CONTENTS_INLINE, DE_NULL); diff --git a/external/vulkancts/modules/vulkan/image/vktImageMutableTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageMutableTests.cpp index 6593c74f0..917165ebb 100644 --- a/external/vulkancts/modules/vulkan/image/vktImageMutableTests.cpp +++ b/external/vulkancts/modules/vulkan/image/vktImageMutableTests.cpp @@ -1056,6 +1056,18 @@ void UploadDownloadExecutor::run(Context& context, VkBuffer buffer) const VkImageUsageFlags imageUsage = getImageUsageForTestCase(m_caseDef); const VkImageCreateFlags imageFlags = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT | (m_haveMaintenance2 ? VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR : 0); + VkImageFormatProperties properties; + if ((context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(context.getPhysicalDevice(), + m_caseDef.imageFormat, + getImageType(m_caseDef.imageType), + VK_IMAGE_TILING_OPTIMAL, + imageUsage, + imageFlags, + &properties) == VK_ERROR_FORMAT_NOT_SUPPORTED)) + { + TCU_THROW(NotSupportedError, "Format not supported"); + } + m_imageHolder = makeImage(m_vk, m_device, imageFlags, getImageType(m_caseDef.imageType), m_caseDef.imageFormat, m_caseDef.viewFormat, m_caseDef.isFormatListTest, m_caseDef.size, 1u, m_caseDef.numLayers, imageUsage); m_image = *m_imageHolder; diff --git a/external/vulkancts/modules/vulkan/image/vktImageTranscodingSupportTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageTranscodingSupportTests.cpp index 668dd0e29..61fc220f6 100644 --- a/external/vulkancts/modules/vulkan/image/vktImageTranscodingSupportTests.cpp +++ b/external/vulkancts/modules/vulkan/image/vktImageTranscodingSupportTests.cpp @@ -831,6 +831,9 @@ void ImageTranscodingCase::checkSupport (Context& context) const { context.requireDeviceFunctionality("VK_KHR_maintenance2"); + if ((m_parameters.operation == OPERATION_TEXTURE_READ || m_parameters.operation == OPERATION_TEXTURE_WRITE) && !context.getDeviceFeatures().fragmentStoresAndAtomics) + TCU_THROW(NotSupportedError, "fragmentStoresAndAtomics not supported"); + if (!isFormatUsageFlagSupported(context, m_parameters.featuredFormat, m_parameters.testedImageUsageFeature)) TCU_THROW(NotSupportedError, "Test skipped due to feature is not supported by the format"); diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp index f90eec42a..16de0cb64 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineNoPositionTests.cpp @@ -380,6 +380,7 @@ tcu::TestStatus NoPositionInstance::iterate (void) const auto extent = NoPositionCase::getImageExtent(); const auto color = NoPositionCase::getBackGroundColor(); const VkImageUsageFlags usage = (VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT); + const auto viewType = (m_params.numViews > 1u ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D); const bool tess = m_params.tessellation(); VkShaderStageFlags stageFlags = 0u; @@ -436,7 +437,7 @@ tcu::TestStatus NoPositionInstance::iterate (void) ImageWithMemory colorImage (vkd, device, alloc, colorImageInfo, MemoryRequirement::Any); const auto subresourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, m_params.numViews); - const auto colorImageView = makeImageView(vkd, device, colorImage.get(), VK_IMAGE_VIEW_TYPE_2D, format, subresourceRange); + const auto colorImageView = makeImageView(vkd, device, colorImage.get(), viewType, format, subresourceRange); // Vertices and vertex buffer. std::vector<tcu::Vec4> vertices = diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp index 749612220..34a444085 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp @@ -417,9 +417,9 @@ void SamplerTest::initPrograms (SourceCollections& sourceCollections) const << "{\n" << " fragColor = "; - if (m_samplerLod > 0.0f) + if (m_samplerLod > 0.0f || !m_imageViewType.isNormalized()) { - DE_ASSERT(m_imageViewType.isNormalized()); + DE_ASSERT(m_imageViewType.isNormalized() || (m_samplerLod == 0.0f && !m_imageViewType.isNormalized())); fragmentSrc << "textureLod(texSampler, vtxTexCoords." << texCoordSwizzle << ", " << std::fixed << m_samplerLod << ")"; } else @@ -1328,10 +1328,18 @@ void ExactSamplingCase::initPrograms (vk::SourceCollections& programCollection) << "\n" << "layout(location = 0) out " << colorType << " outColor;\n" << "\n" - << "void main() {\n" - << " outColor = texture(texSampler, fragTexCoord);\n" - << "}\n" - ; + << "void main() {\n"; + + if (m_params.unnormalizedCoordinates) + { + fragmentShader << " outColor = textureLod(texSampler, fragTexCoord, 0.0f);"; + } + else + { + fragmentShader << " outColor = texture(texSampler, fragTexCoord);\n"; + } + + fragmentShader << "}\n"; programCollection.glslSources.add("frag") << glu::FragmentSource{fragmentShader.str()}; } @@ -1370,8 +1378,6 @@ vk::VkExtent3D ExactSamplingInstance::getTextureExtent (void) const tcu::TestStatus ExactSamplingInstance::iterate (void) { - const auto& vki = m_context.getInstanceInterface(); - const auto physDevice = m_context.getPhysicalDevice(); const auto& vkd = m_context.getDeviceInterface(); const auto device = m_context.getDevice(); auto& allocator = m_context.getDefaultAllocator(); @@ -1536,12 +1542,8 @@ tcu::TestStatus ExactSamplingInstance::iterate (void) const auto descriptorSet = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get()); // Texture sampler. When using a solid color, test linear filtering. Linear filtering may incur in a small precission loss, but - // it should be minimal and we should get the same color when converting back to the original format. Anisotropy should be - // irrelevant too, so it is enabled and set to the maximum level if available. + // it should be minimal and we should get the same color when converting back to the original format. const auto minMagFilter = (m_params.solidColor ? vk::VK_FILTER_LINEAR : vk::VK_FILTER_NEAREST); - const bool anisotropySupported = (vk::getPhysicalDeviceFeatures(vki, physDevice).samplerAnisotropy == VK_TRUE); - const bool anisotropyEnable = (!unnorm && m_params.solidColor && anisotropySupported); - const float maxAnisotropy = (anisotropyEnable ? vk::getPhysicalDeviceProperties(vki, physDevice).limits.maxSamplerAnisotropy : 1.0f); const auto addressMode = (unnorm ? vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE : vk::VK_SAMPLER_ADDRESS_MODE_REPEAT); const auto unnormalizedCoordinates = (unnorm ? VK_TRUE : VK_FALSE); @@ -1557,8 +1559,8 @@ tcu::TestStatus ExactSamplingInstance::iterate (void) addressMode, // VkSamplerAddressMode addressModeV; addressMode, // VkSamplerAddressMode addressModeW; 0.0f, // float mipLodBias; - (anisotropyEnable ? VK_TRUE : VK_FALSE), // VkBool32 anisotropyEnable; - maxAnisotropy, // float maxAnisotropy; + VK_FALSE, // VkBool32 anisotropyEnable; + 1.0f, // float maxAnisotropy; VK_FALSE, // VkBool32 compareEnable; vk::VK_COMPARE_OP_NEVER, // VkCompareOp compareOp; 0.0f, // float minLod; diff --git a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationFragShaderSideEffectsTests.cpp b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationFragShaderSideEffectsTests.cpp index bfefbb6b9..c9332d473 100644 --- a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationFragShaderSideEffectsTests.cpp +++ b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationFragShaderSideEffectsTests.cpp @@ -73,7 +73,6 @@ constexpr deUint32 kFramebufferWidth = 32u; constexpr deUint32 kFramebufferHeight = 32u; constexpr deUint32 kTotalPixels = kFramebufferWidth * kFramebufferHeight; -constexpr vk::VkFormatFeatureFlags kNeededColorFeatures = (vk::VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | vk::VK_FORMAT_FEATURE_TRANSFER_SRC_BIT); constexpr vk::VkFormat kColorFormat = vk::VK_FORMAT_R8G8B8A8_UNORM; constexpr vk::VkFormatFeatureFlags kNeededDSFeatures = vk::VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT; // VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT must be supported for one of these two, according to the spec. @@ -154,12 +153,13 @@ FragSideEffectsTestCase::FragSideEffectsTestCase (tcu::TestContext& testCtx, con void FragSideEffectsTestCase::checkSupport (Context& context) const { - const auto& vki = context.getInstanceInterface(); - const auto physicalDevice = context.getPhysicalDevice(); + const auto& features = context.getDeviceFeatures(); + + if (!features.fragmentStoresAndAtomics) + TCU_THROW(NotSupportedError, "Fragment shader stores and atomics not supported"); if (m_params.caseType == CaseType::DEPTH_BOUNDS) { - const auto features = vk::getPhysicalDeviceFeatures(vki, physicalDevice); if (!features.depthBounds) TCU_THROW(NotSupportedError, "Depth bounds test not supported"); } @@ -171,10 +171,6 @@ void FragSideEffectsTestCase::checkSupport (Context& context) const { context.requireDeviceFunctionality("VK_KHR_shader_terminate_invocation"); } - - const auto colorFormatProperties = vk::getPhysicalDeviceFormatProperties(vki, physicalDevice, kColorFormat); - if ((colorFormatProperties.optimalTilingFeatures & kNeededColorFeatures) != kNeededColorFeatures) - TCU_THROW(NotSupportedError, "Color format lacks required features"); } void FragSideEffectsTestCase::initPrograms (vk::SourceCollections& programCollection) const diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassDepthStencilResolveTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassDepthStencilResolveTests.cpp index 3a15c873d..7a3dd9beb 100644 --- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassDepthStencilResolveTests.cpp +++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassDepthStencilResolveTests.cpp @@ -580,7 +580,7 @@ Move<VkRenderPass> DepthStencilResolveTest::createRenderPass (VkFormat vkformat) AttachmentReference2 singlesampleAttachmentRef // VkAttachmentReference2 ( // VkStructureType sType; - DE_NULL, // const void* pNext; + attachmentRefStencil, // const void* pNext; (m_config.unusedResolve ? VK_ATTACHMENT_UNUSED : 1u), // deUint32 attachment; layout, // VkImageLayout layout; aspectFlags // VkImageAspectFlags aspectMask; diff --git a/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp b/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp index 631692095..a6205ef28 100644 --- a/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp +++ b/external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp @@ -401,6 +401,9 @@ void RobustnessExtsTestCase::checkSupport(Context& context) const if (m_data.stage == STAGE_VERTEX && !features2.features.vertexPipelineStoresAndAtomics) TCU_THROW(NotSupportedError, "Vertex pipeline stores and atomics not supported"); + if (m_data.stage == STAGE_FRAGMENT && !features2.features.fragmentStoresAndAtomics) + TCU_THROW(NotSupportedError, "Fragment shader stores not supported"); + if (m_data.stage == STAGE_RAYGEN) context.requireDeviceFunctionality("VK_NV_ray_tracing"); @@ -458,6 +461,9 @@ void RobustnessExtsTestCase::checkSupport(Context& context) const if (m_data.pushDescriptor) context.requireDeviceFunctionality("VK_KHR_push_descriptor"); + + if (m_data.viewType == VK_IMAGE_VIEW_TYPE_CUBE_ARRAY && !features2.features.imageCubeArray) + TCU_THROW(NotSupportedError, "Cube array image view type not supported"); } void generateLayout(Layout &layout, const CaseDef &caseDef) diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktOpaqueTypeIndexingTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktOpaqueTypeIndexingTests.cpp index 131542721..498562053 100644 --- a/external/vulkancts/modules/vulkan/shaderexecutor/vktOpaqueTypeIndexingTests.cpp +++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktOpaqueTypeIndexingTests.cpp @@ -185,7 +185,7 @@ public: generateSources(m_shaderType, m_shaderSpec, programCollection); } - void checkSupport (Context& context) const; + virtual void checkSupport (Context& context) const; protected: const char* m_name; @@ -1390,6 +1390,7 @@ public: virtual ~BlockArrayIndexingCase (void); virtual TestInstance* createInstance (Context& ctx) const; + virtual void checkSupport (Context& context) const; private: BlockArrayIndexingCase (const BlockArrayIndexingCase&); @@ -1424,6 +1425,33 @@ BlockArrayIndexingCase::~BlockArrayIndexingCase (void) { } +void BlockArrayIndexingCase::checkSupport(Context &context) const +{ + OpaqueTypeIndexingCase::checkSupport(context); + + uint32_t maxDescriptorStorageBuffers = (uint32_t)(m_inValues.size()); + + switch (m_shaderType) + { + case glu::SHADERTYPE_VERTEX: + case glu::SHADERTYPE_TESSELLATION_CONTROL: + case glu::SHADERTYPE_TESSELLATION_EVALUATION: + case glu::SHADERTYPE_GEOMETRY: + case glu::SHADERTYPE_FRAGMENT: + // No extra storage buffers + break; + case glu::SHADERTYPE_COMPUTE: + // From ComputerShaderExecutor class + maxDescriptorStorageBuffers += 2u; + break; + default: + TCU_THROW(InternalError, "Unsupported shader type"); + } + + if (maxDescriptorStorageBuffers > context.getDeviceProperties2().properties.limits.maxPerStageDescriptorStorageBuffers) + TCU_THROW(NotSupportedError, "Driver supports less maxPerStageDescriptorStorageBuffers than the ones required"); +} + TestInstance* BlockArrayIndexingCase::createInstance (Context& ctx) const { return new BlockArrayIndexingCaseInstance(ctx, diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp index 28eeb95d7..48e93b519 100644 --- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp +++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp @@ -3251,7 +3251,7 @@ protected: ret |= ctx.format.roundOut(Interval(-DE_PI_DOUBLE, DE_PI_DOUBLE), true); } - if (ctx.format.hasInf() != YES && (!yi.isFinite() || !xi.isFinite())) + if (!yi.isFinite() || !xi.isFinite()) { // Infinities may not be supported, allow anything, including NaN ret |= TCU_NAN; diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp index 5ee6ba9b9..e57b34b86 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp @@ -15279,7 +15279,7 @@ struct fp16Atan2 : public fp16PerComponent const double yd (y.asDouble()); double result (0.0); - if (x.isZero() && y.isZero()) + if ((x.isZero() && y.isZero())||(x.isInf() && y.isInf())) return false; if (getFlavor() == 0) diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp index b8acab56f..6191a1b42 100644 --- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp +++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp @@ -2597,6 +2597,11 @@ void SSBOLayoutCase::initPrograms (vk::SourceCollections& programCollection) con TestInstance* SSBOLayoutCase::createInstance (Context& context) const { + return new SSBOLayoutCaseInstance(context, m_bufferMode, m_interface, m_refLayout, m_initialData, m_writeData, m_usePhysStorageBuffer); +} + +void SSBOLayoutCase::checkSupport(Context& context) const +{ if (!context.isDeviceFunctionalitySupported("VK_KHR_relaxed_block_layout") && usesRelaxedLayout(m_interface)) TCU_THROW(NotSupportedError, "VK_KHR_relaxed_block_layout not supported"); if (!context.get16BitStorageFeatures().storageBuffer16BitAccess && uses16BitStorage(m_interface)) @@ -2607,9 +2612,20 @@ TestInstance* SSBOLayoutCase::createInstance (Context& context) const TCU_THROW(NotSupportedError, "scalarBlockLayout not supported"); if (m_usePhysStorageBuffer && !context.isBufferDeviceAddressSupported()) TCU_THROW(NotSupportedError, "Physical storage buffer pointers not supported"); - if (!context.getDescriptorIndexingFeatures().shaderStorageBufferArrayNonUniformIndexing && usesDescriptorIndexing(m_interface)) + if (usesDescriptorIndexing(m_interface) && ( !context.getDescriptorIndexingFeatures().shaderStorageBufferArrayNonUniformIndexing || + !context.getDescriptorIndexingFeatures().runtimeDescriptorArray ) ) TCU_THROW(NotSupportedError, "Descriptor indexing over storage buffer not supported"); - return new SSBOLayoutCaseInstance(context, m_bufferMode, m_interface, m_refLayout, m_initialData, m_writeData, m_usePhysStorageBuffer); + + const vk::VkPhysicalDeviceProperties &properties = context.getDeviceProperties(); + // Shader defines N+1 storage buffers: N to operate and one more to store the number of cases passed. + deUint32 blockCount = 1u; + for (deInt32 blockIdx = 0u; blockIdx < m_interface.getNumBlocks(); blockIdx++) + { + blockCount += m_interface.getBlock(blockIdx).getArraySize() ? m_interface.getBlock(blockIdx).getArraySize() : 1u; + } + + if (properties.limits.maxPerStageDescriptorStorageBuffers < blockCount) + TCU_THROW(NotSupportedError, "Descriptor set storage buffers count higher than the maximum supported by the driver"); } void SSBOLayoutCase::delayedInit (void) diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp index aa8ad2a04..5008098c1 100644 --- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp +++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp @@ -244,6 +244,7 @@ public: virtual void delayedInit (void); virtual void initPrograms (vk::SourceCollections& programCollection) const; virtual TestInstance* createInstance (Context& context) const; + virtual void checkSupport (Context &context) const; protected: BufferMode m_bufferMode; diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp index c9582b065..113a54e09 100644 --- a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp +++ b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp @@ -99,10 +99,6 @@ public: tcu::TestStatus iterate (void) { - // Check device for anisotropic filtering support - if (!m_context.getDeviceFeatures().samplerAnisotropy) - TCU_THROW(NotSupportedError, "Skipping anisotropic tests since the device does not support anisotropic filtering."); - TextureRenderer renderer (m_context, VK_SAMPLE_COUNT_1_BIT, ANISOTROPY_TEST_RESOLUTION, ANISOTROPY_TEST_RESOLUTION); TestTexture2DSp texture = TestTexture2DSp(new pipeline::TestTexture2D(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM), ANISOTROPY_TEST_RESOLUTION, ANISOTROPY_TEST_RESOLUTION)); @@ -176,6 +172,14 @@ public: { return new FilteringAnisotropyInstance(context, m_refParams); } + + virtual void checkSupport (Context& context) const + { + // Check device for anisotropic filtering support. + if (!context.getDeviceFeatures().samplerAnisotropy) + TCU_THROW(NotSupportedError, "Skipping anisotropic tests since the device does not support anisotropic filtering."); + } + private : const AnisotropyParams m_refParams; }; diff --git a/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp b/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp index 943f54c20..35bb5edb3 100644 --- a/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp +++ b/external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp @@ -2232,7 +2232,8 @@ TestInstance* UniformBlockCase::createInstance (Context& context) const TCU_THROW(NotSupportedError, "std430 not supported"); if (!context.getScalarBlockLayoutFeatures().scalarBlockLayout && usesBlockLayout(LAYOUT_SCALAR)) TCU_THROW(NotSupportedError, "scalarBlockLayout not supported"); - if (!context.getDescriptorIndexingFeatures().shaderUniformBufferArrayNonUniformIndexing && usesBlockLayout(LAYOUT_DESCRIPTOR_INDEXING)) + if (usesBlockLayout(LAYOUT_DESCRIPTOR_INDEXING) && ( !context.getDescriptorIndexingFeatures().shaderUniformBufferArrayNonUniformIndexing || + !context.getDescriptorIndexingFeatures().runtimeDescriptorArray ) ) TCU_THROW(NotSupportedError, "Descriptor indexing over uniform buffer not supported"); return new UniformBlockCaseInstance(context, m_bufferMode, m_uniformLayout, m_blockPointers); diff --git a/external/vulkancts/modules/vulkan/vktTestCase.cpp b/external/vulkancts/modules/vulkan/vktTestCase.cpp index d46791f86..f8a426cf4 100644 --- a/external/vulkancts/modules/vulkan/vktTestCase.cpp +++ b/external/vulkancts/modules/vulkan/vktTestCase.cpp @@ -42,8 +42,6 @@ #include <set> -struct vk_executor; - namespace vkt { diff --git a/modules/gles2/functional/es2fFunctionalTests.cpp b/modules/gles2/functional/es2fFunctionalTests.cpp index d1d12bf69..f62916dab 100644 --- a/modules/gles2/functional/es2fFunctionalTests.cpp +++ b/modules/gles2/functional/es2fFunctionalTests.cpp @@ -311,36 +311,36 @@ FunctionalTests::~FunctionalTests (void) void FunctionalTests::init (void) { - addChild(new PrerequisiteTests (m_context)); - addChild(new ImplementationLimitTests (m_context)); - addChild(new ClipControlTests (m_context)); - addChild(new ColorClearTest (m_context)); - addChild(new DepthStencilClearTests (m_context)); - addChild(new BufferTests (m_context)); - addChild(new LightAmountTest (m_context)); - addChild(new MultisampledRenderToTextureTests(m_context)); - addChild(new ShadersTestGroup (m_context)); - addChild(new TextureTestGroup (m_context)); - addChild(new FragmentOpTests (m_context)); - addChild(new FboTestGroup (m_context)); - addChild(new VertexArrayTestGroup (m_context)); - addChild(new ShaderApiTests (m_context)); - addChild(new NegativeApiTestGroup (m_context)); - addChild(new RasterizationTests (m_context)); - addChild(createAttributeLocationTests (m_context)); - addChild(new MultisampleTests (m_context)); - addChild(new UniformApiTests (m_context)); - addChild(new ReadPixelsTests (m_context)); - addChild(new DepthRangeTests (m_context)); - addChild(new DitheringTests (m_context)); - addChild(new StateQueryTests (m_context)); - addChild(new ClippingTests (m_context)); - addChild(new PolygonOffsetTests (m_context)); - addChild(new DrawTests (m_context)); - addChild(new FlushFinishTests (m_context)); - addChild(new DefaultVertexAttributeTests(m_context)); - addChild(createLifetimeTests (m_context)); - addChild(createDebugMarkerTests (m_context)); + addChild(new PrerequisiteTests (m_context)); + addChild(new ImplementationLimitTests (m_context)); + addChild(new ClipControlTests (m_context)); + addChild(new ColorClearTest (m_context)); + addChild(new DepthStencilClearTests (m_context)); + addChild(new BufferTests (m_context)); + addChild(new LightAmountTest (m_context)); + addChild(new MultisampledRenderToTextureTests (m_context)); + addChild(new ShadersTestGroup (m_context)); + addChild(new TextureTestGroup (m_context)); + addChild(new FragmentOpTests (m_context)); + addChild(new FboTestGroup (m_context)); + addChild(new VertexArrayTestGroup (m_context)); + addChild(new ShaderApiTests (m_context)); + addChild(new NegativeApiTestGroup (m_context)); + addChild(new RasterizationTests (m_context)); + addChild(createAttributeLocationTests (m_context)); + addChild(new MultisampleTests (m_context)); + addChild(new UniformApiTests (m_context)); + addChild(new ReadPixelsTests (m_context)); + addChild(new DepthRangeTests (m_context)); + addChild(new DitheringTests (m_context)); + addChild(new StateQueryTests (m_context)); + addChild(new ClippingTests (m_context)); + addChild(new PolygonOffsetTests (m_context)); + addChild(new DrawTests (m_context)); + addChild(new FlushFinishTests (m_context)); + addChild(new DefaultVertexAttributeTests (m_context)); + addChild(createLifetimeTests (m_context)); + addChild(createDebugMarkerTests (m_context)); } } // Functional diff --git a/scripts/build_android_mustpass.py b/scripts/build_android_mustpass.py index 96ef9b129..355c08340 100644 --- a/scripts/build_android_mustpass.py +++ b/scripts/build_android_mustpass.py @@ -129,7 +129,7 @@ MASTER_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [ required = True, filters = MASTER_GLES3_COMMON_FILTERS, runtime = "1h50m", - runByDefault = False), + runByDefault = False), Configuration(name = "master-2020-03-01", glconfig = "rgba8888d24s8ms0", rotation = "unspecified", @@ -191,7 +191,7 @@ MASTER_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [ Configuration(name = "incremental-deqp", filters = [include("gles3-incremental-deqp.txt")], runtime = "5m", - runByDefault = False), + runByDefault = False), ]) MASTER_GLES31_COMMON_FILTERS = [ @@ -282,7 +282,7 @@ MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [ Configuration(name = "master", filters = MASTER_VULKAN_FILTERS, runtime = "2h39m", - runByDefault = False), + runByDefault = False), Configuration(name = "master-2019-03-01", filters = [include("vk-master-2019-03-01.txt")], runtime = "2h29m"), @@ -295,7 +295,7 @@ MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [ Configuration(name = "incremental-deqp", filters = [include("vk-incremental-deqp.txt")], runtime = "5m", - runByDefault = False), + runByDefault = False), ]) MUSTPASS_LISTS = [ diff --git a/scripts/mustpass.py b/scripts/mustpass.py index 8c4ae98c4..4d1e2b454 100644 --- a/scripts/mustpass.py +++ b/scripts/mustpass.py @@ -318,6 +318,7 @@ def genAndroidTestXml (mustpass): ElementTree.SubElement(configElement, "option", key="parameter", name="config-descriptor:metadata", value="not_instant_app") ElementTree.SubElement(configElement, "option", key="parameter", name="config-descriptor:metadata", value="multi_abi") ElementTree.SubElement(configElement, "option", key="parameter", name="config-descriptor:metadata", value="secondary_user") + ElementTree.SubElement(configElement, "option", key="parameter", name="config-descriptor:metadata", value="no_foldable_states") controllerElement = ElementTree.SubElement(configElement, "object") controllerElement.set("class", "com.android.tradefed.testtype.suite.module.TestFailureModuleController") controllerElement.set("type", "module_controller") diff --git a/scripts/src_util/check_all.py b/scripts/src_util/check_all.py index d2987fe87..b58e53149 100644 --- a/scripts/src_util/check_all.py +++ b/scripts/src_util/check_all.py @@ -28,7 +28,6 @@ from check_encoding import checkEncoding from check_whitespace import checkWhitespace from check_license import checkLicense from check_boms import checkBOMs -from check_invalid_literals import checkInvalidLiterals if __name__ == "__main__": parser = ArgumentParser() @@ -52,7 +51,6 @@ if __name__ == "__main__": checkWhitespace(files), checkIncludeGuards(files), checkLicense(files), - checkInvalidLiterals(files), #todo checkRedundantIncludeGuards(files), ]) diff --git a/scripts/src_util/check_invalid_literals.py b/scripts/src_util/check_invalid_literals.py deleted file mode 100644 index 8485c0898..000000000 --- a/scripts/src_util/check_invalid_literals.py +++ /dev/null @@ -1,111 +0,0 @@ -# -*- coding: utf-8 -*- - -#------------------------------------------------------------------------- -# drawElements Quality Program utilities -# -------------------------------------- -# -# Copyright (c) 2017 The Khronos Group Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -#------------------------------------------------------------------------- - -import os -import re -import sys -from argparse import ArgumentParser -from common import getChangedFiles, getAllProjectFiles, isTextFile - -CHECK_LITERAL_PATTERNS = [ - r'\b[us]*int[0-9]+_t\b', - r'\b[U]*INT(_LEAST|_FAST|)[0-9]+_MAX\b', - r'\b0b', -] - -CHECK_LIST = [ - ".cpp", - ".hpp", - ".c", - ".h", -] - -EXCLUSION_LIST = [ - "framework/delibs/debase/deDefs.h", - "framework/platform/android/tcuAndroidPlatform.cpp", - "framework/platform/android/tcuAndroidWindow.hpp", - "framework/platform/android/tcuAndroidWindow.cpp", - "framework/platform/lnx/X11/tcuLnxX11Xcb.cpp", - "framework/platform/lnx/wayland/tcuLnxWayland.hpp", - "framework/platform/lnx/wayland/tcuLnxWayland.cpp", - "framework/delibs/debase/deFloat16.c", -] - -def checkEnds(line, ends): - return any(line.endswith(end) for end in ends) - -def checkFileInvalidLiterals (file): - error = False - - if checkEnds(file.replace("\\", "/"), CHECK_LIST) and not checkEnds(file.replace("\\", "/"), EXCLUSION_LIST): - f = open(file, 'rt') - for lineNum, line in enumerate(f): - # Remove inline comments - idx = line.find("//") - if idx > 0: - line = line[:idx] - # Remove text in quoted literals - if line.find("\"") > 0: - list = line.split('"') - del list[1::2] - line = ' ' - line = line.join(list) - for pattern in CHECK_LITERAL_PATTERNS: - found = re.search(pattern, line) - if found is not None: - error = True - print("%s:%i Unacceptable type found (pattern:%s)" % (file, lineNum+1, pattern)) - f.close() - - return not error - -def checkInvalidLiterals (files): - error = False - for file in files: - if isTextFile(file): - if not checkFileInvalidLiterals(file): - error = True - - return not error - -if __name__ == "__main__": - parser = ArgumentParser() - parser.add_argument("-e", "--only-errors", action="store_true", dest="onlyErrors", default=False, help="Print only on error") - parser.add_argument("-i", "--only-changed", action="store_true", dest="useGitIndex", default=False, help="Check only modified files. Uses git.") - - args = parser.parse_args() - - if args.useGitIndex: - files = getChangedFiles() - else: - files = getAllProjectFiles() - - # filter out original Vulkan header sources - files = [f for f in files if "vulkancts/scripts/src" not in f] - - error = not checkInvalidLiterals(files) - - if error: - print("One or more checks failed") - sys.exit(1) - if not args.onlyErrors: - print("All checks passed") |