Eric Werness [Wed, 25 Nov 2020 22:46:16 +0000 (14:46 -0800)]
Only use AABBs for the shader record tests
AABBS_AND_TRIANGLES uses the instanceSBTOffset to pick between shader hit
groups, but the test only defines one shader hit group. Just using AABBs
still exercises all shaders but fits the shader groups defined by the test.
Affects: dEQP-VK.ray_tracing_pipeline.misc.shaderRecord*
Components: Vulkan
VK-GL-CTS issue: 2444
Change-Id: Ic718c22e9ef4176763179b084019a3a83ed7c584
Ricardo Garcia [Fri, 30 Oct 2020 15:10:43 +0000 (16:10 +0100)]
Enable VK_KHR_ray_tracing_pipeline only if needed
This commit makes the default test device not enable the
VK_KHR_pipeline_library extension by default, which can potentially affect all
ray tracing and ray query tests.
Ray tracing pipeline tests are modified to use a custom device with the needed
features enabled, including the VK_KHR_pipeline_library extension. The tests
also check the extension is supported if VK_KHR_ray_tracing_pipeline is
supported, failing the test early if not.
Modified tests:
dEQP-VK.ray_tracing_pipeline.pipeline_library.*
Affected tests:
dEQP-VK.ray_tracing_pipeline.*
dEQP-VK.ray_query.*
Components: Vulkan
VK-GL-CTS issue: 2592
Change-Id: I1494ab3ce28fdce892f0444cba9ca538caec1208
Eric Werness [Thu, 19 Nov 2020 01:16:23 +0000 (17:16 -0800)]
Simplify geometry to reduce AABB precision issues
AABBs are allowed to hit conservatively for precision reasons, which was
causing failures in some cases. Extremely simplify the geometry to make
it very unlikely that we'll get false hits.
Affects:
dEQP-VK.ray_tracing_pipeline.misc.recursiveTraces*
Components: Vulkan
VK-GL-CTS issue: 2444
Change-Id: Ie8a9ffde2761354a395c6367e6bca8145a22bbf3
Ricardo Garcia [Tue, 10 Nov 2020 13:01:45 +0000 (14:01 +0100)]
Test terminateInvocation with frag shader side effects
Adds tests that check fragment shader side effects, in the form of SSBO
writes, are not removed by optimizations done when the fragment is
discarded with terminateInvocation.
New tests:
dEQP-VK.rasterization.frag_side_effects.*.terminate_invocation
Components: Framework, Vulkan
VK-GL-CTS issue: 2336
Change-Id: I34c3eac815c7176f9420c2a4ccfc50f5bbd3a8a7
Michal Opalka [Mon, 30 Nov 2020 07:48:36 +0000 (08:48 +0100)]
Fix test using protected features without creating a device with them enabled
The vulkan device was created without protected memory extension,
while later the tests queried physical device if the feature is supported
and based on that created protected image.
Components: Vulkan
Affects:
dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.*
VK-GL-CTS Issue: 2675
Change-Id: I6d606fb34c89474b529c0f9e0e7a93202e801521
Graeme Leese [Tue, 27 Oct 2020 13:06:45 +0000 (13:06 +0000)]
Fix image cube array tests support checks
The tests were interpreting *any* failure to compile programs as being
because image variables were not supported. This meant legitimate
failures were missed and that extra time was spent compiling shaders
before deciding the test was unsupported.
Components: OpenGL
VK-GL-CTS issue: 2647
Affects: KHR-GLES31.core.texture_cube_map_array.image_op_*
KHR-GLES32.core.texture_cube_map_array.image_op_*
KHR-GLESEXT.texture_cube_map_array.image_op_*
Change-Id: I35a265e3b1ce991eb522a7db23f3825e5384faea
leiche02 [Wed, 11 Nov 2020 06:42:14 +0000 (14:42 +0800)]
Use shader to calculate sample point
The test's sampling point is taking from interpolated varying, the inaccuracy
of interpolation may cause wrong sampling, use gl_FragCoord in fragment
shader to calcuate sample point directly.
Component: OpenGL
Affected tests: KHR-GLES32.core.nearest_edge.offset_*
VK-GL-CTS issue: 2651
Change-Id: Ib91595ca07a2b146059c51f2d68ebf086c10553c
Joshua Ashton [Wed, 15 Jul 2020 03:44:27 +0000 (04:44 +0100)]
Add tests for VK_EXT_4444_formats
Components: Vulkan
New tests:
dEQP-VK.*.a4b4g4r4*
dEQP-VK.*.a4r4g4b4*
Change-Id: I5d597a718246e4bc0af3c6acee1c0d3d0787997b
Ricardo Garcia [Fri, 27 Nov 2020 09:55:04 +0000 (10:55 +0100)]
Enable random writes for storage texel buffers
In the descriptor set random tests, enable random writes when the
descriptor type is a storage texel buffer.
In addition, this commit fixes a problem with storage image barriers.
Affected tests with random writes:
dEQP-VK.binding_model.descriptorset_random.*outimgtexlow*
dEQP-VK.binding_model.descriptorset_random.*lowimgsingletex*
dEQP-VK.binding_model.descriptorset_random.*storageimghigh*
Affected tests:
dEQP-VK.binding_model.descriptorset_random.*
VK-GL-CTS issue: 1973
Components: Vulkan
Change-Id: I5a407ebc239cca48cee56c5901f45bd4118b3c3b
Ricardo Garcia [Wed, 18 Nov 2020 15:12:52 +0000 (16:12 +0100)]
Test reading primitive id from frag shader after tessellation
Add a test that tries to read the primitive id from the fragment shader
in a pipeline that has tessellation shaders but no geometry shaders.
The new test has been grouped together with the existing Amber vertex
only test in a single group containing miscellaneous pipeline tests.
New test:
dEQP-VK.pipeline.misc.primitive_id_from_tess
Renamed test:
-dEQP-VK.pipeline.vertex_only.position_to_ssbo
+dEQP-VK.pipeline.misc.position_to_ssbo
Components: Vulkan
VK-GL-CTS issue: 2654
Change-Id: Ied0fef78916ee83960c689bfd2a7e48dc4b4cfd0
Paul Thomson [Fri, 27 Nov 2020 11:29:42 +0000 (11:29 +0000)]
Add a batch of GraphicsFuzz tests
Components: Vulkan
New Tests:
dEQP-VK.graphicsfuzz.spv-stable-bifurcation-Os-mutate-var-vector-shuffle
dEQP-VK.graphicsfuzz.spv-stable-collatz-O-mutate-composite-construct-extract
dEQP-VK.graphicsfuzz.spv-stable-colorgrid-modulo-O-move-block-down
dEQP-VK.graphicsfuzz.spv-stable-maze-flatten-copy-composite
dEQP-VK.graphicsfuzz.spv-stable-mergesort-O-prop-up-mutate-var
dEQP-VK.graphicsfuzz.spv-stable-mergesort-flatten-selection-dead-continues
dEQP-VK.graphicsfuzz.spv-stable-mergesort-func-inline-mutate-var
dEQP-VK.graphicsfuzz.spv-stable-orbit-O-mutate-variable
dEQP-VK.graphicsfuzz.spv-stable-orbit-Os-access-chain-mutate-pointer
dEQP-VK.graphicsfuzz.spv-stable-pillars-O-op-select-to-op-phi
dEQP-VK.graphicsfuzz.spv-stable-quicksort-mat-func-param
dEQP-VK.graphicsfuzz.spv-stable-rects-Os-mutate-var-push-through-var
Change-Id: I3399fd06647e764e1e1851db26d7c361e9bfa632
Antto Mäkinen [Fri, 20 Nov 2020 15:48:57 +0000 (17:48 +0200)]
Add a batch of GraphicsFuzz coverage tests
This commit adds a batch of GraphicsFuzz coverage tests.
Components: Vulkan
New Tests:
dEQP-VK.graphicsfuzz.cov-access-array-dot
dEQP-VK.graphicsfuzz.cov-apfloat-negative-step-func
dEQP-VK.graphicsfuzz.cov-apfloat-undefined-matrix-mul
dEQP-VK.graphicsfuzz.cov-const-folding-bitfieldinsert-div-one
dEQP-VK.graphicsfuzz.cov-const-folding-mod-one-one-lte
dEQP-VK.graphicsfuzz.cov-constants-combine-add-sub
dEQP-VK.graphicsfuzz.cov-dag-combiner-glf_color
dEQP-VK.graphicsfuzz.cov-dag-combiner-loop-bitfieldreverse
dEQP-VK.graphicsfuzz.cov-inst-combine-add-sub-determinant
dEQP-VK.graphicsfuzz.cov-inst-combine-add-sub-increase-negative
dEQP-VK.graphicsfuzz.cov-inst-combine-add-sub-neg-func-arg
dEQP-VK.graphicsfuzz.cov-inst-combine-and-or-xor-pack-unpack
dEQP-VK.graphicsfuzz.cov-inst-combine-and-or-xor-switch
dEQP-VK.graphicsfuzz.cov-inst-combine-and-or-xor-xor-add
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-combine-select-uaddcarry
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-isnan
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-ldexp
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-ternary-vector-access
dEQP-VK.graphicsfuzz.cov-inst-combine-shifts-bitfield-bitcount
dEQP-VK.graphicsfuzz.cov-inst-combine-shifts-mix-mix-clamp
dEQP-VK.graphicsfuzz.cov-instr-info-det-mat-min
dEQP-VK.graphicsfuzz.cov-instructions-for-if-less-than-equal
dEQP-VK.graphicsfuzz.cov-machine-scheduler-for-if-pow
dEQP-VK.graphicsfuzz.cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard
dEQP-VK.graphicsfuzz.cov-scaled-number-nested-loops-array-access
dEQP-VK.graphicsfuzz.cov-simplify-for-bitwise-condition
dEQP-VK.graphicsfuzz.cov-simplify-right-shift-greater-than-zero
dEQP-VK.graphicsfuzz.cov-tail-duplicator-for-for-for
dEQP-VK.graphicsfuzz.cov-x86-isel-lowering-machine-value-type-uint-to-float
dEQP-VK.graphicsfuzz.cov-x86-isel-lowering-selection-dag-struct-array-clamp-index
Change-Id: Idde9e994c12f93e9ede51f23fe3a75592d81c528
Piers Daniell [Wed, 25 Nov 2020 21:53:32 +0000 (14:53 -0700)]
Update AccessInstance::verifyResult() to support 64-bit types
When 64-bit support was added to the
dEQP-VK.robustness.buffer_access.through_pointers.* tests in
https://gerrit.khronos.org/#/c/5835/ the AccessInstance::verifyResult()
function was not updated to take the new 8 byte element sizes.
It assumed all accesses were in units of 4 bytes, which doesn't
work for 64-bit types which have accesses in units of 8 bytes.
Affects:
dEQP-VK.robustness.buffer_access.through_pointers.*
Components: Vulkan
VK-GL-CTS issue: 2670
Change-Id: I4656376f127bc4cf6eeaa80ed71aaa3f265e0aac
Greg Grebe [Tue, 10 Mar 2020 17:29:46 +0000 (13:29 -0400)]
Add dEQP-VK.pipeline.creation_cache_control.*
Add new test groups:
dEQP-VK.pipeline.creation_cache_control.graphics_pipelines.*
dEQP-VK.pipeline.creation_cache_control.compute_pipelines.*
Add new tests:
*.single_pipeline_no_compile
*.batch_pipelines_early_return
*.duplicate_single_recreate_explicit_caching
*.duplicate_single_recreate_no_caching
*.duplicate_single_recreate_derivative
*.duplicate_batch_pipelines_explicit_cache
*.duplicate_batch_pipelines_no_cache
*.duplicate_batch_pipelines_derivative_index
VK_EXT_pipeline_creation_cache_control adds the ability for
vkCreate*Pipeline calls to fail rather compile when requested by the
application. These tests use both single and batch pipeline creation
with the most common methods of caching: explicit caching, no cache/
implicit caching, and pipeline derivatives.
This ensures that drivers are responsive to the needs of an application
using this extension by not only checking the output but the time taken
to execute the vkCreate*Pipeline call.
The tests explicitly fail in the following cases:
- Any result other than SUCCESS or PIPELINE_COMPILE_REQUIRED.
- An invalid pipeline handle returned when created without
FAIL_ON_PIPELINE_COMPILE_REQUIRED.
- A valid pipeline is returned sequentially following a failed
pipeline with the flag EARLY_RETURN_ON_FAILURE set during batch
pipeline creation.
Failures due to timing will only be QUALITY warnings.
The shaders used contain random constant values baked into the GLSL in
an attempt to force the need to compile pipelines through fuzzing. Any
unexpectedly successful pipeline creations (such as due to accidental
cache hits) will raise a COMPATIBILITY warning.
Affects no existing tests.
Components: Framework, Vulkan
Vulkan issue: 2013
Change-Id: I90dec48293a5c8ece66fc871a13c6d6f0e3002ff
(cherry picked from commit
26cb99a1eb50332a93bc329a4d34a5d9239a5667)
Joshua Ashton [Wed, 15 Jul 2020 03:34:34 +0000 (04:34 +0100)]
Add support for ABGR texture formats
Needed for VK_EXT_4444_formats
Components: Vulkan Framework
Affects: *
Change-Id: I1f4a4e555d69da3d14df2ce34ad46526cb570911
Alexander Galazin [Thu, 26 Nov 2020 19:06:47 +0000 (20:06 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Change-Id: Ic297aa295cadb7a95eae99aede64da5788abcdcd
Alexander Galazin [Thu, 26 Nov 2020 18:29:20 +0000 (19:29 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Change-Id: Ia429349d7b0b35eb29243833dd471406bd7adc87
Alexander Galazin [Thu, 26 Nov 2020 17:42:40 +0000 (18:42 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Change-Id: I66f05ed7be1361806de4ea2d8e17ea6472bb93cb
Ricardo Garcia [Thu, 22 Oct 2020 07:36:48 +0000 (09:36 +0200)]
Force thread count in deferred host operations
Several ray tracing tests use deferred host operations with a non-zero number
of threads to check the implementation works as expected. Thread counts are
usually 1, 2, 3, 4, 8 or "max". "max" thread counts are not unlimited. They use
the implementation-defined concurrency limit for a given operation, capped to
at most 256 threads.
In other cases, the implementation-defined concurrency limit for a given
operation was checked to be at least as big as the number of target threads for
the test. Otherwise, the test performed a late-exit with a "not supported"
result, which is unusual.
Tests with 1 thread were always supposed to run because the implementation can
only return zero when the operation has already completed.
Tests with the "max" limit would always run as described above.
This commit removes the concurrency limit check for intermediate values of
thread counts. The rationale is that, no matter if the implementation supports
that level of concurrency for a given operation or not, the spec allows us to
create any number of threads and make them join the deferred operation:
> Applications can join any number of threads to the deferred operation and
> expect it to eventually complete, though excessive joins may return
> VK_THREAD_DONE_KHR immediately, performing no useful work.
This change allows every test to always run, increases coverage and avoids the
late exit with "not supported" status.
Affected tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.host_threading.*
dEQP-VK.ray_query.acceleration_structures.host_threading.*
dEQP-VK.ray_tracing_pipeline.large_shader_set.cpu_ht*
dEQP-VK.ray_tracing_pipeline.build.*
dEQP-VK.ray_tracing_pipeline.pipeline_library.*
Components: Vulkan
VK-GL-CTS issue: 2585
Change-Id: I9b4fd8d06793b0916e61f9e3c2fd8f416d4735f1
Eric Werness [Tue, 24 Nov 2020 20:40:44 +0000 (12:40 -0800)]
Zero out the hit stride for miss SBT tests
The test was relying on a zero sbtRecordStride to not index the hit
groups, but that's only multiplied by the geometryIndex, not the
instanceShaderBindingTableRecordOffset, causing the hit group to
index out of bounds on the miss test
Affects:
dEQP-VK.ray_tracing_pipeline.shader_binding_table.*miss*
Components: Vulkan
VK-GL-CTS issue: 2444
Change-Id: I01868190a4901f87a5c536b70ae9ee0989280b47
Ari Suonpaa [Tue, 24 Nov 2020 12:24:43 +0000 (14:24 +0200)]
Fix validation errors in terminate invocation tests
There were some validation errors in terminate invocation tests.
The problem was mainly about signedness mismatch between buffer
data format and what was used in SPIR-V shaders. Also some of
the tests needed fragmentStoresAndAtomics feature requirement.
VK-GL-CTS Issue: 2667
Affects:
dEQP-VK.spirv_assembly.instruction.terminate_invocation.*
Components: Vulkan
Change-Id: I3948d0b771336731e88d9583274812aa67fc0326
Tomasz Owczarek [Mon, 3 Aug 2020 15:36:46 +0000 (16:36 +0100)]
Add sliced 3D compressed texture test
New tests:
dEQP-VK.texture.compressed_3D.*
VK-GL-CTS issue: 2567
Components: Vulkan
Change-Id: Iaad7ba69361cbfa8ef46a907ce36646450e7e6b7
Alexander Galazin [Thu, 26 Nov 2020 17:09:51 +0000 (18:09 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Change-Id: I3966e7e1ab45fa815f85def0edaab713e6e16f80
Ricardo Garcia [Thu, 30 Jan 2020 10:39:29 +0000 (11:39 +0100)]
Loosen basic subgroup elect test vertex checks
This commit takes into account any shader in the vertex pipeline may run
multiple times per vertex when checking results in the basic subgroup
elect test.
In addition, it contains a few indentation fixes as well as fixes for
several validation errors in the whole test group.
Affected tests:
dEQP-VK.subgroups.basic.*
Components: Vulkan
VK-GL-CTS issue: 2162
Change-Id: Ib0aaf929bca5ce4939a3e2fd98a69a0812f1aa0b
Samuel Iglesias Gonsálvez [Thu, 25 Jul 2019 13:34:26 +0000 (15:34 +0200)]
Add tests for VK_EXT_subgroup_size_control
For compute and graphics pipelines:
* Check the required subgroup size set by the tests is honored by the
driver (including for full subgroups and allow varying cases for
computer shaders).
* Check that enabling allow varying subgroup size reports a subgroup
size that falls within the limits of the driver.
* For compute pipeline, check that require full subgroups works as
expected.
On top of that, added requiredSubgroupSize case for subgroup's compute
shader tests that check all possible required subgroup sizes announced
by the driver.
Also there is a test that checks subgroup size control limits sanity.
Affected tests:
dEQP-VK.subgroups.*
Components: Vulkan
VK-GL-CTS issue: 1864
Change-Id: Ia48deb9318420889754bd97545045f85b3c6fed7
Piers Daniell [Wed, 25 Nov 2020 20:13:57 +0000 (13:13 -0700)]
Initialize resourceImgLayout before use for all code paths
Without this fix when updateDescriptorSet() is called in
BarrierTestInstance::iterate() debug builds for Vulkan CTS will
complain that resourceImgLayout is used without being initialized.
Affects:
dEQP-VK.ray_tracing_pipeline.barrier.*
Components: Vulkan
VK-GL-CTS issue: 2669
Change-Id: If320ac561cf278a9697ca33d302a1130db29fdb7
Marcin Kańtoch [Tue, 17 Nov 2020 10:23:15 +0000 (11:23 +0100)]
ExtensionUse variable not set for 1D and 3D images
Fix for KHR_copy_commands2 tests do not set extensionUse
variable for 1D and 3D images.
Component: Vulkan
VK-GL-CTS Issue: 2660
Affected tests:
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.*.1d.*
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.*.3d.*
Change-Id: I5dccb2ea016853fd9dc29b30cdcf40e2dc18e7c1
Alexander Galazin [Thu, 26 Nov 2020 14:08:17 +0000 (15:08 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Change-Id: Icbe4097c08aebcad8ac5e401faad4b014aa4a820
Alexander Galazin [Thu, 26 Nov 2020 13:34:12 +0000 (14:34 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Change-Id: I2808d8556ad4cef552466af67361d30722fd9b91
Ricardo Garcia [Tue, 10 Nov 2020 11:45:36 +0000 (12:45 +0100)]
Test vkCmdBindVertexBuffers2EXT with size and offset
Test both the size and offset parameters in the new vertex binding
function are used properly.
The new tests create vertex buffers which have the proper vertex data in
the middle of them, with wrong data before and after them. If any
implementation were to read data out of the precise range, the new tests
should not pass.
New tests:
dEQP-VK.pipeline.extended_dynamic_state.*.stride_with_offset_and_padding
Affected tests:
dEQP-VK.pipeline.extended_dynamic_state.*
Components: Vulkan
VK-GL-CTS issue: 2646
Change-Id: I97f385934fcd41e19b2448a54e4f28f8a8a9c24c
Ricardo Garcia [Wed, 18 Nov 2020 15:04:47 +0000 (16:04 +0100)]
Test SPIR-V switch case jumping to the merge block
Add new case that tests OpSwitch containing a case that jumps directly
to the merge block.
New test:
dEQP-VK.spirv_assembly.instruction.graphics.switch_block_order.switch-case-to-merge-block
Components: Vulkan
VK-GL-CTS issue: 2657
Change-Id: Ibfabc4341dd35b96795aac8cf9bd8ce5fa61ebe6
Alexander Galazin [Thu, 26 Nov 2020 12:52:17 +0000 (13:52 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Change-Id: Idb3171db18746b59d7c91297bd6ab3c00be455ae
Alexander Galazin [Thu, 26 Nov 2020 12:03:17 +0000 (13:03 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Change-Id: I2cdeeb0ab92e4533ee38ef0d2c39a2845b03379a
Matthew Netsch [Wed, 18 Nov 2020 20:42:16 +0000 (15:42 -0500)]
Fixes texture filter cubic mipmap tests
Tests using wrong miplevel to verify
Components: Vulkan
VK-GL-CTS Issue: 2662
Affects:
dEQP-VK.texture.filtering.*.cubic
Change-Id: I65ca120bdcaf460ce4addf15bc5ed15bbc3bc7b4
Andrew Fobel [Wed, 28 Oct 2020 19:41:58 +0000 (15:41 -0400)]
Fix descriptorCount for YCbCr-related tests
Certain YCbCr tests did not behave consistently with the Vulkan spec
when creating descriptor pools.
Tests now properly query combinedImageSamplerDescriptorCount to
correctly set pool size in the event of multiplane images.
Affects:
dEQP-VK.ycbcr.filtering.*
Components: Vulkan
VK-GL-CTS Issue: 2386
Change-Id: Idd700bee41eec7546f903326c31fbc928c7e7ecb
Graeme Leese [Mon, 16 Nov 2020 11:15:01 +0000 (11:15 +0000)]
Fixes for image format properties tests
* Non-chroma-subsampled formats are allowed to support cosited chroma.
(In fact, until a recent spec clarification it was required).
* Apply checks of YCbCr properties to all formats. Any format can be
used with YCbCr, so they should all be subject to the same checks.
(This is what covered up the previous issue).
* Only ban non-YCbCr usage for YCbCr formats that require a
SamplerYCbCrConversion object. There were a few odd formats added
with that extension for which this is not required.
Components: Vulkan
VK-GL-CTS issue: 2624
Affects: dEQP-VK.api.info.format_properties.*
Change-Id: I17d1058e7a4cf1b1a17fb30d37fc0c4a9757c4d4
Karolina Palka [Mon, 21 Sep 2020 07:19:59 +0000 (09:19 +0200)]
Add tests for YCbCr chromaFilter linear filtering
New tests:
dEQP-VK.ycbcr.filtering.linear_sampler_with_chroma_linear_filtering_g8_b8_r8_3plane_420_unorm
dEQP-VK.ycbcr.filtering.linear_sampler_with_chroma_linear_filtering_g8_b8r8_2plane_420_unorm
Components: Vulkan
VK-GL-CTS issue: 2239
Change-Id: I43c83ce3401e35ffbec9200b18ae112b491b4c6c
Graeme Leese [Wed, 29 Jul 2020 10:40:01 +0000 (11:40 +0100)]
Add ArrayStride decorations in TerminateInvocation tests
The tests are using OpPtrAccessChain which requires types decorated with
ArrayStride.
Components: Vulkan
VK-GL-CTS issue: 2512
Affects:
dEQP-VK.spirv_assembly.instruction.terminate_invocation.*.no_out_of_bounds_*
Change-Id: I6d1b4a5a9d5207ed00cbddf8deb5a8f52cc909ff
(cherry picked from commit
98563858e62d73f675ad7c6849407c9f455c181e)
Boris Zanin [Tue, 28 Apr 2020 07:39:34 +0000 (09:39 +0200)]
Add ray tracing extensions to list of known extensions
Adds following extensions to a list of enabled Khronos extensions:
* VK_KHR_ray_tracing_pipeline
* VK_KHR_ray_query
* VK_KHR_acceleration_structure
* VK_KHR_pipeline_library
* VK_KHR_deferred_host_operations
Affected tests:
* dEQP-VK.info.device_extensions
Components: Framework, Vulkan
VK-GL-CTS issue: 2143
Change-Id: Ib008304c210ade78569a9c2c27ce61c3aefa0df4
Alexander Galazin [Tue, 24 Nov 2020 12:36:56 +0000 (13:36 +0100)]
Merge vk-gl-cts/vk_khr_ray_tracing into vk-gl-cts/master
Change-Id: I49438e55593ce166519553b90b55ecaf7ec57063
Alexander Galazin [Tue, 24 Nov 2020 07:56:48 +0000 (08:56 +0100)]
Update glslang, SPIR-V headers, tools
Components: Framework
Change-Id: Ic1f961bdcc133c5222ace8e004c11fe706eef486
Arkadiusz Sarwa [Wed, 8 Jul 2020 08:55:49 +0000 (10:55 +0200)]
Add sparse tests shader_image_atomic_int64
Components: Vulkan, Framework
VK-GL-CTS issue: 2392
New Tests:
dEQP-VK.sparse_resources.*r64*
Affects:
dEQP-VK.sparse_resources.*
Change-Id: I550b52d36cb435ac955dc72e1accd0dcb6e5a125
(cherry picked from commit
4b8977bef3075f62d3898510d24c6540146f2eff)
Arkadiusz Sarwa [Wed, 24 Jun 2020 12:23:39 +0000 (14:23 +0200)]
Add tests shader_image_atomic_int64 robustness2
Components: Vulkan
VK-GL-CTS issue: 2392
New Tests:
dEQP-VK.robustness.image_robustness.*r64*
dEQP-VK.robustness.robustness2.*r64*
Affects:
dEQP-VK.robustness.image_robustness.*
dEQP-VK.robustness.robustness2.*
Change-Id: Iafb82e9ee3e56537c1fd7f40ef250973d0648c79
(cherry picked from commit
c0a74351457b0ce559c7d09ad493e41df2b455e6)
Alexander Galazin [Fri, 20 Nov 2020 16:19:40 +0000 (17:19 +0100)]
Switch spirv-binaries to Release build
Components: Framework
Change-Id: Iceaa7a248bb8dad6dd0ab08d356be441ad2b2876
Arkadiusz Sarwa [Thu, 11 Jun 2020 11:26:55 +0000 (13:26 +0200)]
Add tests shader_image_atomic_int64 robustness
Components: Vulkan
VK-GL-CTS issue: 2392
New Tests:
dEQP-VK.robustness*r64*
Affects:
dEQP-VK.robustness.*
Change-Id: I6dfe126a6174b894adb7725343cef9ffdb04c36a
(cherry picked from commit
09449ea11456d5b295f12ed640db99f660324879)
Arkadiusz Sarwa [Fri, 29 May 2020 14:16:58 +0000 (16:16 +0200)]
Add tests for VK_EXT_shader_image_atomic_int64
Components: Vulkan, Framework
VK-GL-CTS issue: 2392
New Tests:
dEQP-VK.image.atomic_operations.*r64*
dEQP-VK.image.atomic_operations.*buffer*
Affects:
dEQP-VK.image.atomic_operations.*
Change-Id: Ia5d8742a758f92577e0931e22f21d26ca20115b4
(cherry picked from commit
e9cf49b80bff652c42a9608f1f2efcf007e29999)
Alexander Galazin [Fri, 20 Nov 2020 14:37:17 +0000 (15:37 +0100)]
Update SPIR-V Tools/Headers, glslang
Change-Id: I07f72636b29756675409ab2da62e5b8edad0c973
Vihanakangas [Fri, 28 Aug 2020 09:59:24 +0000 (12:59 +0300)]
Update tests to not trigger undefined behaviour in framebuffer_fetch cases
Some framebuffer_fetch cases had an integer format conversion which
resulted in overflow. The shader and reference texture generation have been
modified to take this in to account when creating values
in such way that it doesn't overflow the max range of the format.
Affects:
dEQP-GLES31.functional.shaders.framebuffer_fetch.framebuffer_format.*
Components: OpenGL
VK-GL-CTS issue: 2016
Change-Id: I686f6548cafee13dd2a0f564bb302d269ca6b0a0
Antto Mäkinen [Fri, 16 Oct 2020 10:47:34 +0000 (13:47 +0300)]
Add a batch of GraphicsFuzz coverage tests
This commit adds a batch of GraphicsFuzz coverage tests.
Components: Vulkan
New Tests:
dEQP-VK.graphicsfuzz.cov-branch-probability-identity-matrix
dEQP-VK.graphicsfuzz.cov-combine-and-or-xor-gt-lt
dEQP-VK.graphicsfuzz.cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop
dEQP-VK.graphicsfuzz.cov-dag-combiner-findmsb-loop
dEQP-VK.graphicsfuzz.cov-dag-combiner-increment-color
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-while-modulo
dEQP-VK.graphicsfuzz.cov-inst-peephole-optimizer-acosh
dEQP-VK.graphicsfuzz.cov-inst-value-tracking-inversesqrt
dEQP-VK.graphicsfuzz.cov-instr-emitter-pow-asinh
dEQP-VK.graphicsfuzz.cov-instruction-simplify-atanh-log-undefined
dEQP-VK.graphicsfuzz.cov-instruction-simplify-bit-shifting
dEQP-VK.graphicsfuzz.cov-instruction-simplify-inclusive-or
dEQP-VK.graphicsfuzz.cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result
dEQP-VK.graphicsfuzz.cov-instruction-simplify-mod-acos-undefined
dEQP-VK.graphicsfuzz.cov-instruction-simplify-mod-sqrt-undefined
dEQP-VK.graphicsfuzz.cov-instruction-simplify-sqrt
dEQP-VK.graphicsfuzz.cov-instructions-first-value-phi
dEQP-VK.graphicsfuzz.cov-ir-builder-constant-fold-inst-combine-calls-value-tracking-findmsb-incr-if
dEQP-VK.graphicsfuzz.cov-optimize-phis-for
dEQP-VK.graphicsfuzz.cov-optimize-phis-for-for-do-while-if-if
dEQP-VK.graphicsfuzz.cov-peephole-optimizer-target-instr-info-for-if-if-if
dEQP-VK.graphicsfuzz.cov-selection-dag-assign-back-and-forth
dEQP-VK.graphicsfuzz.cov-selection-dag-lt-gt
dEQP-VK.graphicsfuzz.cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal
dEQP-VK.graphicsfuzz.cov-value-inst-combine-select-value-tracking-flip-bits
dEQP-VK.graphicsfuzz.cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator
dEQP-VK.graphicsfuzz.cov-value-tracking-constant-fold-refraction-dfxd-determinant
dEQP-VK.graphicsfuzz.cov-value-tracking-known-nonzero
dEQP-VK.graphicsfuzz.cov-value-tracking-max-uintbitstofloat
dEQP-VK.graphicsfuzz.cov-value-tracking-selection-dag-negation-clamp-loop
Change-Id: I62f485332da70e889ffb198551c787e56314e20b
Piotr Byszewski [Thu, 15 Oct 2020 07:26:11 +0000 (09:26 +0200)]
Add tests for empty structs in UBOs and SSBOs
Components: Vulkan
VK-GL-CTS issue: 2608
Affects:
dEQP-VK.spirv_assembly.*.compute.*
New tests:
dEQP-VK.spirv_assembly.instruction.compute.empty_struct.*
Change-Id: I078881e7b2ce24eaa99c4247901533dfc78c0c57
Ricardo Garcia [Fri, 30 Oct 2020 15:25:57 +0000 (16:25 +0100)]
Enable nullDescriptor for null AS RT tests
The nullDescriptor feature is disabled for the default device. Ray tracing
pipeline tests depending on the feature need to use a custom device.
Affected tests:
dEQP-VK.ray_tracing_pipeline.null_as.test
Components: Vulkan
VK-GL-CTS issue: 2635
Change-Id: I7d9da92fd5c208335210e4680ad61900b4d58667
Alexander Galazin [Thu, 19 Nov 2020 08:45:56 +0000 (09:45 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
Change-Id: Ic6d38cbc4febf18ddd51853bd954ada86c00ab64
Alexander Galazin [Thu, 19 Nov 2020 08:45:53 +0000 (09:45 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Change-Id: I3dc4a855b6a1e8e5c9b1794b528fa433c2e7d4ff
Alexander Galazin [Thu, 19 Nov 2020 08:05:02 +0000 (09:05 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/opengl-es-cts-3.2.5
Change-Id: I4d5fd46d7f654ae13dcac771a16aca3683bfd735
Alexander Galazin [Thu, 19 Nov 2020 07:56:58 +0000 (08:56 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Change-Id: I8e412ddc6bb6f6544f158efdc9433eef1125ed3a
Alexander Galazin [Thu, 19 Nov 2020 07:56:55 +0000 (08:56 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Change-Id: I99cfcc0f6ef06dd1119aa4215cf9e958b2c33f49
Matthew Netsch [Wed, 18 Nov 2020 23:02:11 +0000 (18:02 -0500)]
Fixes sparse resource SNORM tests
Tests verifies value out of range
Components: Vulkan
VK-GL-CTS Issue: 2598
Affects:
dEQP-VK.sparse_resources.image_sparse_binding.*snorm*
dEQP-VK.sparse_resources.mipmap_sparse_residency.*snorm*
Change-Id: Id11addbc60c44ca7f20f86e11dbc7c833bbe7da7
Alexander Galazin [Wed, 18 Nov 2020 20:09:06 +0000 (21:09 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Change-Id: Iaa3c6741b9d7ad77eda048ec234c59e869263182
Alexander Galazin [Wed, 18 Nov 2020 16:30:12 +0000 (17:30 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Change-Id: I0ce2eae2a8a98a50d25e9e916dd0dde8e90e3288
Alexander Galazin [Wed, 18 Nov 2020 16:29:36 +0000 (17:29 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.0 into vk-gl-cts/vulkan-cts-1.2.1
Change-Id: Ie6ac4a6779ee2dd624590df63f152f661c089223
Alexander Galazin [Wed, 18 Nov 2020 16:29:36 +0000 (17:29 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/vulkan-cts-1.2.1
Change-Id: I8f4da52990ac1b7ae96414375e9bea652ddbc7d8
Alexander Galazin [Wed, 18 Nov 2020 09:27:20 +0000 (10:27 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Change-Id: Ie294402abe02966f55089430d9557b5f0bc80c5f
Alexander Galazin [Wed, 18 Nov 2020 09:27:18 +0000 (10:27 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.2.0
Change-Id: Icda35a4b6ca926511422ec96c4675b9012973ef1
Alexander Galazin [Wed, 18 Nov 2020 08:24:34 +0000 (09:24 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Change-Id: Ie1cf28bfe3f8dcb9d0714472bb60dfc098811716
Yiwei Zhang [Thu, 11 Jun 2020 22:31:10 +0000 (15:31 -0700)]
Add external memeory tests for the VK_EXT_device_memory_report extension
This test allocates an exportable memory and grabs the native handle
from it, then it imports the native handle twice, and verifies that the
allocate/free events are still emitted for the exportable memory as well
as verifying the proper timing of import/unimport events and the
correctness of all the callback data.
Components: Vulkan
VK-GL-CTS issue: 2266
New tests: dEQP-VK.memory.device_memory_report.external_memory.*
Change-Id: I42c08f775224735f65ceb4f3c8a77ea43d3a7ed3
Ricardo Garcia [Fri, 9 Oct 2020 09:36:44 +0000 (11:36 +0200)]
Enable random writes for storage images
This commit enables random writes in the descriptor set random tests for
descriptors of type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE.
Affected tests:
dEQP-VK.binding_model.descriptorset_random.*lowimgnotex*
dEQP-VK.binding_model.descriptorset_random.*lowimgsingletex*
dEQP-VK.binding_model.descriptorset_random.*storageimghigh*
Components: Vulkan
VK-GL-CTS issue: 1973
Change-Id: Ibf49692a72641ab6ca752048d71926eb975316e1
Ricardo Garcia [Thu, 5 Nov 2020 13:37:32 +0000 (14:37 +0100)]
Fix depth/stencil image logging in renderpass tests
Renderpass tests checking results in depth/stencil images containing
both depth and stencil aspects attempt to log the depth/stencil image
when the test fails (but not when the test passes).
When the logging facilities log those depth/stencil images, they convert
them to an image set with two images in order to separate the depth and
stencil views. If this image set is logged as part of another image set
in the log, the logging facilities fail an assertion because image sets
cannot contain other image sets.
Affected tests (only on failures for depth/stencil formats):
dEQP-VK.renderpass*.*allocation.simple.*
dEQP-VK.renderpass*.*allocation.formats.*
dEQP-VK.renderpass*.*allocation.attachment.*
dEQP-VK.renderpass*.*allocation.attachment_allocation.*
dEQP-VK.renderpass*.*allocation.attachment_write_mask.*
Components: Vulkan
VK-GL-CTS issue: 2642
Change-Id: I72ba603e3b42b34730f1f51234f0b6cd64f23da2
ajerecze [Wed, 4 Nov 2020 10:11:08 +0000 (11:11 +0100)]
Fix initial layout of depth stencil attachment
This is a fix for regression introduced in
2e2e79bd.
The test was using the makeRenderpass utility from
framework/vulkan/vkObjUtil.cpp, however this utility was changed in
2e2e79bd to use
VK_IMAGE_LAYOUT_UNDEFINED as renderpass initial layout of depth stencil attachment,
while the image used in test is in VK_IMAGE_LAYOUT_UNDEFINED layout (not changed
since the image creation).
This commit changes dEQP-VK.imageless_framebuffer.depth_stencil to use makeRenderPass function
from vktImagelessFramebufferTests.cpp, rather than affected vkObjUtil.cpp utity.
(The makeRenderpass in vkObjUtil.cpp is shared with
dEQP-VK.pipeline.cache.graphics_tests.vertex_stage_fragment_stage test, which needed the change
from
2e2e79bd)
Component: Vulkan
VK-GL-CTS Issue: 2641
Affected tests:
dEQP-VK.imageless_framebuffer.depth_stencil
Change-Id: Id2ea5803cd010831db8f4f31b1d6b25dee051825
Arkadiusz Sarwa [Fri, 30 Oct 2020 13:02:54 +0000 (14:02 +0100)]
Fix tests dEQP-VK.draw.depth_clamp
Affected tests:
dEQP-VK.draw.depth_clamp.*
Components: Vulkan
VK-GL-CTS issue: 2638
Change-Id: I3dced361e7ea11f78bbea00a4609ebad73054d0e
Liam Middlebrook [Fri, 23 Oct 2020 02:09:22 +0000 (19:09 -0700)]
Fix results-check for floating-point intermediate atomic operations
This commit fixes the results checking function for a set of tests that
verify atomic operations on floating-point formats. Previously when
compiled with GCC 4.8.4 the generated code would store incorrect values
into `resultValues[i]` rather than correctly interpreting the uint32_t
input data as a float and converting to a uint32_t before storing in
`resultValues[i]`.
Affects:
dEQP-VK.image.atomic_operations.add*r32f*
dEQP-VK.image.atomic_operations.exchange*r32f*
Components: Vulkan
VK-GL-CTS issue: 2632
Change-Id: I34e55d8ef109b5a14bda86d28821a0053c874546
Ricardo Garcia [Fri, 6 Nov 2020 12:14:27 +0000 (13:14 +0100)]
Avoid advertising disabled robustness2 features
Make sure getRobustness2FeaturesEXT does not advertise a feature as
enabled when, in fact, the feature has been disabled when creating the
default test device in the context. This is consistent with the behavior
that was in place for robustBufferAccess.
In addition, disable image robustness in the default device, to be
consistent with the existing behavior for robustness2 features and
robustBufferAccess.
This means robustness2 and image robustness tests needed to be modified
to stop relying on feature checks from the context, like using
getRobustness2FeaturesEXT, because those will now be reported as not
enabled. In other words, feature getters from the context report
features that are *enabled* on the default device, and not features that
are merely available.
In addition, make robustness2 and image robustness tests use separate
devices when enabling image robustness or robustness2 features, so as to
run image robustness tests without any robustness2 feature.
In addition, require and enable the scalar block layout feature, which
is used to compile every shader in this test group.
Affected tests:
dEQP-VK.robustness.robustness2.*
dEQP-VK.robustness.image_robustness.*
Components: Vulkan
VK-GL-CTS issue: 2634
VK-GL-CTS issue: 2643
Change-Id: I641c0f6f659a89bd12a36da175358d3edc2dfeae
Slawomir Cygan [Thu, 1 Oct 2020 14:14:14 +0000 (16:14 +0200)]
Fix regressions in renderpass tests
Regressions were introduced in
2e2e79bd:
- reintroduce 'shrink' loop in ALLOCATIONTYPE_GROW_SHRINK test type
- fix value VkDependencyFlags
- fix logic around checking and writing to "lastUseOfAttachment" variable
- add missing access flags to exisitng subpass dependencies
VK-GL-CTS Issue: 2605
Components: Vulkan
Affects: dEQP-VK.renderpass.suballocation.attachment_allocation.input_output.*
Change-Id: Ie19ac124340e40e529997ac67418a2531a4a0319
Alan Baker [Tue, 9 Jun 2020 19:18:31 +0000 (15:18 -0400)]
Tests for VK_KHR_shader_terminate_invocation
* Adds tests for the extension
* Adds more amber test feature checks
Components: Vulkan
VK-GL-CTS Issue: 2396
New Tests: dEQP-VK.spirv_assembly.instruction.terminate_invocation.*
Change-Id: I3ac8dfae88f2a4bd5ec03f8e3aa2b26097eb7190
(cherry picked from commit
a00b458dc43edfd3ad1b93a181d3873aaca63f4b)
Alexander Galazin [Fri, 6 Nov 2020 11:29:19 +0000 (12:29 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
Change-Id: I9c22545388a6bc7a6493bb1f7418536799c2ff57
Jianle Wang [Tue, 20 Oct 2020 02:31:48 +0000 (10:31 +0800)]
Reset texture data to 0 after each 16 iterations to avoid overflow
The default precision of int in the fragment shader is mediump. The fs_out_color
in GeometryShaderMaxCombinedTextureUnitsTest::m_fragment_shader_code_body will
overflow when the number of texture unit become large, since each texture data
is equal to index of the texture units.
So reset texture data to 0 after each 16 iterations to avoid the overflow.
Component: OpenGL
Affected tests: KHR-GLES31.core.geometry_shader.limits.max_combined_texture_units
VK-GL-CTS issue: 2622
Change-Id: Icc9f2ed77a5a1cf6f315605f5f1045a60a56396c
(cherry picked from commit
ccb924af7b96ee3771ce25f6d31a0b243bbddee1)
Alexander Galazin [Fri, 6 Nov 2020 09:33:37 +0000 (10:33 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Change-Id: Ie044c7a20d5b6d4f303c2e88118295df3293eb5e
Tapani Pälli [Tue, 27 Oct 2020 10:27:37 +0000 (12:27 +0200)]
framework: fix deinitSession when using waiver xml
Take numWaived in to account when considering if run was ok, patch also
add result.numWaived to the total number of tests, otherwise we hit
following assert when running with waiver:
cts-runner: glcTestRunner.cpp:829: Unknown function:
Assertion `result.numExecuted == result.numPassed + result.numFailed +
result.numNotSupported + result.numWarnings' failed.
Components: Framework, OpenGL
VK-GL-CTS issue: 2631
Affects:
cts-runner
Change-Id: Iac776fd1174e5461c455282cecca208f0322358d
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Jianle Wang [Tue, 20 Oct 2020 02:31:48 +0000 (10:31 +0800)]
Reset texture data to 0 after each 16 iterations to avoid overflow
The default precision of int in the fragment shader is mediump. The fs_out_color
in GeometryShaderMaxCombinedTextureUnitsTest::m_fragment_shader_code_body will
overflow when the number of texture unit become large, since each texture data
is equal to index of the texture units.
So reset texture data to 0 after each 16 iterations to avoid the overflow.
Component: OpenGL
Affected tests: KHR-GLES31.core.geometry_shader.limits.max_combined_texture_units
VK-GL-CTS issue: 2622
Change-Id: Icc9f2ed77a5a1cf6f315605f5f1045a60a56396c
Mika Väinölä [Mon, 26 Oct 2020 21:19:59 +0000 (23:19 +0200)]
Update Amber to fix Clang 11 build
Building Amber with Clang 11 failed due to -Werror and several
-Wsuggest-destructor-override warnings.
Affects: dEQP-VK.*
VK-GL-CTS issue: 2628
Change-Id: Ibae8dbc955d32bb50eb6f5c26cd62579bc6967dd
Ricardo Garcia [Fri, 30 Oct 2020 10:36:16 +0000 (11:36 +0100)]
Fix multisample resolve compatibility tests
Two render passes cannot be compatible if their multisample and resolve
attachments differ in the image format. However, the existing
multisample resolve compatibility tests break this rule.
Render pass compatibility rules do specify the attachment reference can
be different, and in particular this means one of the attachments can be
unused in one render pass and used in another. This fix takes advantage
of that to test render pass compatiblity.
Affected and new tests:
dEQP-VK.renderpass*.suballocation.multisample_resolve.*.compatibility_*
Components: Vulkan
VK-GL-CTS issue: 2629
Change-Id: I9a54f9a8ffc79f89d4b2dc2179b22acdba16aab5
Ricardo Garcia [Fri, 23 Oct 2020 10:18:22 +0000 (12:18 +0200)]
Create debug report recorder earlier
Change debug report recorder creation so it happens before the device is
created, so any error messages reported during device creation can be
properly reported.
This commit doesn't affect normal test runs, but it could be beneficial
to detect system setup problems.
Components: Vulkan
VK-GL-CTS issue: 2627
Change-Id: Iefe7c46e2a90673e8625a541f35fbfb35c1afd8d
Mikko Tiusanen [Mon, 19 Oct 2020 15:03:50 +0000 (18:03 +0300)]
Add tests for oob access in unexecuted shader paths
Added tests for non-robust out of bounds buffer access in unexecuted
shader code paths.
New tests:
dEQP-VK.robustness.non_robust_buffer_access.*
Components: Vulkan
VK-GL-CTS issue: 2171
Change-Id: I43ec27225ed949964d1d9783745326ff7a4dd528
Ari Suonpaa [Mon, 26 Oct 2020 06:03:05 +0000 (08:03 +0200)]
Add subpass self dependency test with a single attachment
This test replicates an issue seen in an app that behaves incorrectly
on a specific driver implementation. It uses a single attachment
referenced as both an input and an output. There is also alpha blending
enabled even though it has no effect in this particular test case.
This was needed to reproduce the original bug.
VK-GL-CTS Issue: 2597
New tests:
dEQP-VK.renderpass*.suballocation.subpass_dependencies.single_attachment.*
Components: Vulkan
Change-Id: Iaf79b3937dec4eebae1b6ad7ec035c1bdf05e811
Alexander Galazin [Sat, 24 Oct 2020 08:37:17 +0000 (10:37 +0200)]
Re-enable cube.*.mag_filter.linear test
Should now work according to
https://gitlab.khronos.org/Tracker/vulkancts/-/issues/340#note_58553
Components: Vulkan
Affects: dEQP-VK.pipeline.sampler.view_type.cube.format.r5g6b5_unorm_pack16.mag_filter.linear
Change-Id: Iffca5cd79053d1e9874beb12c9fafd8edd1cb6a8
Yiwei Zhang [Tue, 9 Jun 2020 04:01:09 +0000 (21:01 -0700)]
Add VkDeviceMemory tests for the VK_EXT_device_memory_report extension
This test allocates and frees VkDeviceMemory explicitly and verifies the
allocate/free/allocation_failed callback events are emitted at the
proper timing as well as verifying the correctness of the callback data.
Components: Vulkan
VK-GL-CTS issue: 2266
New tests: dEQP-VK.memory.device_memory_report.vk_device_memory.*
Change-Id: I96c7973452f512bf4d6f1c819bcf53eb0101b474
Andrea Faulds [Thu, 5 Nov 2020 15:35:51 +0000 (16:35 +0100)]
Permit not flushing operands for FP16 DenormFlushToZero add, dot, vmulm
Where `d` is a denormal value such that `2 * d` is not denormal:
- The F16 OpFAdd tests assumed (d + d) is zero when DenormFlushToZero is
used. This is not true if the operands (d) are not flushed to zero by
the implementation, which is allowed by the Vulkan specification.
- The F16 OpDot test assumed dot(vec2(d, d), vec2(1, 1)) is zero. Since
that is equivalent to (d + d), it has the same problem as OpFAdd.
- The F16 OpVectorTimesMatrix test made the same assumption as the OpDot
test but for both columns of a 2-by-2 matrix, with the same problem.
These tests are changed to accept `2 * d` as a valid result alongside
zero, such that they will pass both on implementations which flush
operands to zero and on implementations which only flush results to
zero.
Modified tests:
dEQP-VK.spirv_assembly.instruction.*.float_controls.fp16.input_args.denorm_*flush_to_zero*
dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_*_fp16_flush_*
VK-GL-CTS Issue: 2644
Components: Vulkan
Change-Id: I0ef4a57915e3bdab100f55f52d21913f87af4927
Ricardo Garcia [Tue, 3 Nov 2020 13:55:51 +0000 (14:55 +0100)]
Avoid using intersection shaders with triangles
dEQP-VK.ray_tracing_pipeline.misc.mixedPrimTL used a single shader group to
handle both triangles and AABBs, which resulted in intersection shaders
being used for triangles, which is forbidden by the spec.
This fix creates two shader groups: one for AABBs and one for triangles, using
instanceShaderBindingTableRecordOffset to choose between both.
In addition, it fixes a validation error related to invalidating a mapped
memory range without using a multiple of nonCoherentAtomSize for the size.
Affected tests:
dEQP-VK.ray_tracing_pipeline.misc.*
Components: Vulkan
VK-GL-CTS issue: 2637
Change-Id: I9d181d0646cef6ab23062ebfa1e035affce05237
Jason Ekstrand [Thu, 29 Oct 2020 21:48:46 +0000 (16:48 -0500)]
Fix the winding order of triangle cubes in dEQP-VK.ray_tracing_pipeline.misc.*
This changes all the faces to have right-handed normals that point into
the cube. This fixes a couple of test failures on Intel.
Affected tests: dEQP-VK.ray_tracing_pipeline.misc.*
Components: Vulkan
VK-GL-CTS issue: 2636
Change-Id: I70028a236cbd46d63e236a2cc57657ee251ce288
Ricardo Garcia [Tue, 3 Nov 2020 08:17:17 +0000 (09:17 +0100)]
Avoid invalid hit kinds with OpReportIntersection
OpReportIntersectionKHR accepts values in the [0, 127] range for the hit kind,
while gl_HitKindFrontFacingTriangleEXT or gl_HitKindBackFacingTriangleEXT are
reserved values outside that range and should not be used with
reportIntersectionEXT() in GLSL.
Affected tests:
dEQP-VK.ray_tracing_pipeline.builtin.*
dEQP-VK.ray_tracing_pipeline.memguarantee.*
dEQP-VK.ray_tracing_pipeline.complexcontrolflow.*
Components: Vulkan
VK-GL-CTS issue: 2626
Change-Id: Ic69abbb53968036ab56ebad4a832485fbccd8fb5
Mika Väinölä [Tue, 25 Aug 2020 06:29:07 +0000 (09:29 +0300)]
ANGLE waiver for GLES XFB array element capture
Tests waived:
dEQP-GLES3.functional.transform_feedback.array_element.*
dEQP-GLES3.functional.transform_feedback.random.*
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.*
KHR-GLES31.core.program_interface_query.transform-feedback-types
Components: OpenGL ES
VK-GL-CTS issue: 2237
Change-Id: I72be7800ced02423a4ac120e5d9ce581636a6a4f
(cherry picked from commit
96fbe712c585b5955b0363cada87ab62a6e4a72b)
Ricardo Garcia [Tue, 13 Oct 2020 11:17:49 +0000 (13:17 +0200)]
Check images can use external host memory before creating them
Call vkGetPhysicalDeviceImageFormatProperties2 before creating an image
with external host memory, to verify it's safe and the implementation
does not return VK_ERROR_FORMAT_NOT_SUPPORTED.
Affected tests:
dEQP-VK.memory.external_memory_host.*
Components: Vulkan
VK-GL-CTS issue: 2620
Change-Id: Ied982d4a8b61a7ad97bac8a096f1a2827a0c0f49
Andrew Fobel [Wed, 28 Oct 2020 19:41:58 +0000 (15:41 -0400)]
Fix descriptorCount for YCbCr-related tests
Certain YCbCr tests did not behave consistently with the Vulkan spec
when creating descriptor pools.
Tests now properly query combinedImageSamplerDescriptorCount to
correctly set pool size in the event of multiplane images.
Affects:
dEQP-VK.protected_memory.interaction.ycbcr.*
dEQP-VK.ycbcr.format.*
dEQP-VK.ycbcr.plane_view.*
dEQP-VK.ycbcr.query.*
Components: Vulkan
VK-GL-CTS Issue: 2386
Change-Id: I8bb261a29c7e4ce82deced447767de915cee451a
Alexander Galazin [Mon, 2 Nov 2020 14:25:06 +0000 (15:25 +0100)]
Update Vulkan headers
Components: Vulkan
Change-Id: Ibcd4bef05a3eb6ed0c9de70765e3f50a1549ba69
Daniel Koch [Tue, 27 Oct 2020 22:56:01 +0000 (18:56 -0400)]
Update glslang and deps for latest rebase
Also includes support for new ignoreIntersectionEXT and terminateRayEXT terminators
and updates affected shaders.
Component: Framework, Vulkan
Affected tests:
dEQP-VK.ray_tracing_pipeline.*
dEQP-VK.ray_query.*
Change-Id: I9114e0637fa3d4bac3afc6af5d02f573270eb709
Ricardo Garcia [Mon, 19 Oct 2020 15:40:35 +0000 (17:40 +0200)]
Check large instanceCustomIndex values
Add a new set of tests that check the value of the
InstanceCustomIndexKHR builtin from the closest-hit, intersection and
any-hit shaders correctly matches the instanceCustomIndex value when
creating instances. The tests use large values for instanceCustomIndex,
making sure the most-significant bit when represented as a 24-bit value
is a 1 and it's not incorrectly sign-extended by the implementation when
presented as the InstanceCustomIndexKHR builtin in shaders.
This value is combined with an all-ones mask in the highest bits of the
32-bit dword.
New tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.instance_index.*
Affected tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.*
Components: Vulkan
VK-GL-CTS issue: 2586
Change-Id: I2af85c9e2a2c78075502ab42db451651c21e0f1a
Ricardo Garcia [Wed, 14 Oct 2020 10:48:48 +0000 (12:48 +0200)]
Test invalid pInheritanceInfo for primary command buffers
When beginning a primary command buffer, the pInheritanceInfo structure
member should be ignored according to the specification. This commit
introduces a few test that set pInheritanceInfo to different invalid
values to make sure they are being ignored.
New tests:
dEQP-VK.api.command_buffers.bad_inheritance_info_*
Components: Vulkan
VK-GL-CTS issue: 2616
Change-Id: Iabd6e82b080d8cc57476dc303f19374c1a833b04
Michal Pawlowski [Tue, 20 Oct 2020 05:53:04 +0000 (07:53 +0200)]
Add array of images copy tests
This commit adds image to image, image to buffer and buffer to image array of images copy tests.
New tests:
dEQP-VK.api.copy_and_blit.core.image_to_image.array.*
dEQP-VK.api.copy_and_blit.core.image_to_buffer.array
dEQP-VK.api.copy_and_blit.core.image_to_buffer.array_tightly_sized_buffer
dEQP-VK.api.copy_and_blit.core.buffer_to_image.array
dEQP-VK.api.copy_and_blit.core.buffer_to_image.array_tightly_sized_buffer
Components: Vulkan
VK-GL-CTS Issue: 2452
Change-Id: I1f9282af60c66e4e9cd1efe6c8c22b65acf9969d
Ricardo Garcia [Tue, 20 Oct 2020 12:52:17 +0000 (14:52 +0200)]
Test extended dynamic state vertex data offsets
The vkCmdBindVertexBuffers2EXT function allows API users to specify the
offset of vertex input data bindings inside vertex buffers as well as
vertex data sizes inside those buffers. Both parameters are related:
the sum of offset plus size must not be greater than the buffer size.
All extended dynamic state tests were using an offset of zero. This
commit adds new tests with nonzero offsets to check those parameters are
used correctly by the implementation.
New tests:
dEQP-VK.pipeline.extended_dynamic_state.*.stride_with_offset
Affected tests:
dEQP-VK.pipeline.extended_dynamic_state.*
Components: Vulkan
VK-GL-CTS issue: 2459
Change-Id: I6b00769395406ff03f01553c1ff1e48a8fc7d308
Michal Pawlowski [Wed, 5 Aug 2020 14:18:18 +0000 (16:18 +0200)]
Add push constant lifetime tests
This commit tries to clarify the push constant lifetime uncertainty.
Components: Vulkan
New tests:
dEQP-VK.pipeline.push_constant.lifetime.*
Affects:
dEQP-VK.pipeline.push_constant.graphics_pipeline.*
VK-GL-CTS issue: 2393
Change-Id: I21a4b46ae1ce00caa67d72ab593ca456f5fa5da1
Iago Toral Quiroga [Tue, 27 Oct 2020 11:24:52 +0000 (12:24 +0100)]
Fix alpha to one tests
The tests were not checking that alpha is actually set to one, which
apparently, would make the tests pass always, even if the driver
doesn't actually set alpha to one. I observed this behavior with two
different drivers.
Component: Vulkan
VK-GL-CTS Issue: 2630
Affects: dEQP-VK.pipeline.multisample.alpha_to_one.*
Change-Id: I9002464c4ae731b6c2855c76ae48329cd1acd43f