Add more SPIR-V 1.4 tests based on Amber
Tests:
- New instructions: OpPtrDiff, OpPtrEqual, OpPtrNotEqual,
OpDecorateString
- New decorations: UniformId, NonWritable, UserSemantic, CounterBuffer,
NoSignedWrap, NoUnsignedWrap
- OpCopyMemory can have two sets of memory access operands
- OpEntryPoint lists all module-scope variables
- New loop controls
- New cases for OpSelect
- UConvert in OpSpecConstantOp for Shader modules
Local fixes:
- Update Amber to newer version that handles push constants.
With MSVC, force Amber to use shared C Runtime DLL
- Modified the entrypoint tessellation control and evaluation tests to
set TessLevelInner and TessLevelOuter.
- Modified the tessellation control tests to fix typos and apply Patch
decoration.
- Artificially make all values within a buffer the same type, to
accommodate a new Amber limitation.
See https://github.com/google/amber/issues/497
- Loop control tests:
- Reduce iteration count to match sample data, adjust loop control
values
- Make loop control match test file name
- Use int data instead of float, so we can read int iteration count
from storage.
- Fix comment on all loop control tests
- Use StorageBuffer/Block instead of Uniform/BufferBlock
- Modify to use binding 0:
comp_pc_entry_point.amber,
wg_comparisons_equal.amber
wg_comparisons_not_equal.amber
- Fix typo for TessLevelOuter builtin
- Fix method name on call to vkt::Context::getVariablePointersFeatures
- Fix whitespace issues in C++ code
- variable_pointers_vars_ssbo_2_diff.amber only needs
VariablePointersStorageBuffer
- Fetch newer amber, fixing invalid requirement for fragment shader
https://github.com/google/amber/issues/553
Extend vkt::AmberTestCase so it can track instance extensions, device
extensions, and feature bits.
Components: Vulkan
Affects:
dEQP-VK.spirv_assembly.instruction.spirv1p4.entrypoint.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.hlsl_functionality1.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.loop_control.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.nonwritable.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opcopymemory.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrdiff.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opselect.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.uconvert.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.uniformid.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.wrap.*
VK-GL-CTS issue: 1705
Change-Id: I1e0adde2258a4c5a313609f7f1d7b2b51be1a373
(cherry picked from commit
94804dca849178b5e222d9d9d53a2a54fd21e8a3)