-- v2: tests/shader-runner: Add a clip distance array test. vkd3d-shader/ir: Transform clip/cull inputs/outputs for DXIL shaders also. tests/d3d12: Test multiple clip distance inputs in test_clip_distance(). tests/d3d12: Use five clip distances for the multiple test in test_clip_distance(). vkd3d-shader/ir: Transform clip/cull outputs and patch constants into arrays. vkd3d-shader/ir: Transform clip/cull inputs into an array. vkd3d: Implement GetCopyableFootprints1(). vkd3d: Implement CreatePlacedResource1(). vkd3d: Implement CreateCommittedResource2(). vkd3d: Implement GetResourceAllocationInfo2(). tests/d3d12: Add tests for GetCopyableFootprints1(). tests/d3d12: Add tests for CreatePlacedResource1(). tests/d3d12: Add tests for CreateCommittedResource2(). tests/d3d12: Add tests for GetResourceAllocationInfo2(). vkd3d: Add ID3D12Device8 interface stubs. vkd3d: Implement ID3D12Resource2. tests/d3d12: Add a test for zero description count in test_resource_allocation_info(). vkd3d: Return DXGI_ERROR_NOT_FOUND from GetProtectedResourceSession(). tests/d3d12: Add tests for GetProtectedResourceSession(). vkd3d: Add ID3D12CommandList6 interface stubs. vkd3d: Replace the descriptor object cache with a thread-local implementation. vkd3d-shader/spirv: Apply the sequentially consistent ordering flag to atomic instructions. vkd3d-shader/spirv: Handle in-bounds register indices. vkd3d-shader/spirv: Trace instead of warn for alignment of indexable temps. vkd3d-shader/spirv: Emit aligned register copies. vkd3d-shader/spirv: Emit aligned register loads. vkd3d-shader/dxil: Use a bool for tracking loop merge targets. vkd3d-shader/dxil: Use a bool for tracking reachability. vkd3d-shader/dxil: Use node visit flag in cfg_structuriser_insert_phi(). vkd3d-shader/dxil: Use node visit flag in cfg_structuriser_find_break_target_for_selection_construct(). vkd3d-shader/dxil: Use node visit flag in cfg_structuriser_traverse_dominated_blocks_and_rewrite_branch(). vkd3d-shader/dxil: Use node visit flag in cfg_structuriser_can_backtrace_to(). vkd3d-shader/dxil: Use node visit flag in sm6_block_post_dominates_any_work(). vkd3d-shader/dxil: Use node visit flag in sm6_block_reaches_backward_visited_node(). vkd3d-shader/dxil: Use node visit flag in the loop tracer. vkd3d-shader/dxil: Use node visit flag in sm6_block_dominates_all_reachable_exits(). vkd3d-shader/dxil: Introduce helpers for allocating flags to track node visits. vkd3d-shader/spirv: Emit interpolation mode for outputs. vkd3d-shader/dxil: Fix eliminate_node_links_preds_to_succ for multiple uses of inner PHI. vkd3d-shader/dxil: Don't add fake_succ if we already have a normal succ. vkd3d-shader/dxil: Invent a ladder block if we have to in loops. vkd3d-shader/dxil: Refactor ladder creation in find_loops. vkd3d-shader/dxil: Never duplicate back-edges. vkd3d-shader/dxil: Reconsider continue breaks if they can reach more normal break nodes. vkd3d-shader/dxil: Handle breaking return constructs better. vkd3d-shader/dxil: Consider switch blocks that branch to continue block. vkd3d-shader/dxil: Consider duplicate branches when eliminating degenerates. vkd3d-shader/dxil: Handle scenario where switch breaks out unexpectedly. vkd3d-shader/dxil: Reduce switch merge scope when appropriate. vkd3d-shader/dxil: Refactor traverse_dominated_blocks to always filter multi-access. vkd3d-shader/dxil: Try harder to tie-break merge fixups with early return. vkd3d-shader/dxil: Don't consider vestigal breaks to be break candidates. vkd3d-shader/dxil: Fix backwards traversal of nested loops that are not reachable. vkd3d-shader/dxil: Rewrite multiple back edges if needed. vkd3d-shader/dxil: Consider that split merge blocks can be hidden in pred blocks. vkd3d-shader/dxil: Fix CFG validation error after last SPIRV-Tools. vkd3d-shader/dxil: Consider more scenarios where we need to introduce dummy case labels. vkd3d-shader/dxil: Consider multiple impossible switch merge candidates. vkd3d-shader/dxil: Fix a scenario where we need loop merge rather than selection merge. vkd3d-shader/dxil: Fix bug in find_common_post_dominator_with_ignored_break. vkd3d-shader/dxil: Avoid catastrophic cancellation of PHI nodes when merging PHI nodes. vkd3d-shader/dxil: Fix compiler warnings. vkd3d-shader/dxil: Emit non-sysval bool inputs/outputs as uint. vkd3d-shader/dxil: Emit register minimum precision. vkd3d-shader/spirv: Emit minimum precision decoration. vkd3d: Use FIXME_ONCE in d3d12_command_list_WriteBufferImmediate(). vkd3d-shader/dxil: Implement DX instruction CBufferLoad. vkd3d-shader/spirv: Support scalar constant buffer load. tests/shader_runner: Test wave ops. vkd3d-shader/dxil: Implement DX instruction WaveActiveAllEqual. vkd3d-shader/spirv: Introduce a WAVE_ACTIVE_ALL_EQUAL instruction. vkd3d-shader/spirv: Enable capability GroupNonUniform for wave inputs. vkd3d-shader/dxil: Implement DX instruction WaveActiveBallot. vkd3d-shader/spirv: Introduce a WAVE_ACTIVE_BALLOT instruction. vkd3d-shader/main: Deduplicate dumped shaders. vkd3d-shader/dxil: Implement DX instruction WaveQuadOp. vkd3d-shader/dxil: Implement DX instructions WaveAllTrue and WaveAnyTrue. vkd3d-shader/dxil: Implement DX instruction WaveGetLaneCount. vkd3d-shader/spirv: Introduce WAVE_QUAD_OP_D/H/V instructions. vkd3d-shader/spirv: Introduce WAVE_ALL_TRUE and WAVE_ANY_TRUE instructions. vkd3d-shader/spirv: Introduce a WAVELANECOUNT register. vkd3d: Use FIXME_ONCE for BeginEvent() and EndEvent(). tests: Introduce test compilation with dxc. tests/d3d12: Introduce DXC compiled shader buffers and a dxc_compiler header. vkd3d: Report highest shader model as 6.0. vkd3d-shader/spirv: Do not warn if unhandled global flags are zero. vkd3d-shader/spirv: Silence more global flag fixmes. vkd3d-shader/dxil: Implement DX instruction WaveReadLaneAt. vkd3d-shader/dxil: Implement DX instruction WaveIsFirstLane. vkd3d-shader/dxil: Implement DX instruction WaveGetLaneIndex. vkd3d-shader/dxil: Implement DX instruction WaveActiveBit. vkd3d-shader/dxil: Implement DX instruction WaveActiveOp. vkd3d-shader/dxil: Implement DX instructions WaveAllBitCount, WavePrefixBitCount and WaveReadLaneFirst. vkd3d-shader/spirv: Introduce a WAVELANEINDEX register type. vkd3d-shader/spirv: Introduce a WAVE_READ_LANE_AT instruction. vkd3d-shader/spirv: Introduce a WAVE_IS_FIRST_LANE instruction. vkd3d-shader/spirv: Introduce WAVE_ACTIVE_BIT_* and WAVE_ACTIVE_OP_* instructions. vkd3d-shader/spirv: Introduce a WAVE_READ_LANE_FIRST instruction. vkd3d-shader/spirv: Introduce WAVE_ALL_BIT_COUNT and WAVE_PREFIX_BIT_COUNT instructions. vkd3d: Initialise wave ops feature options. vkd3d-shader: Introduce a wave ops feature flag. vkd3d: Use Vulkan 1.1 and SPIR-V 1.3. vkd3d-shader/dxil: Implement DX instruction OutputControlPointID. vkd3d-shader/dxil: Implement DX instruction DomainLocation. vkd3d-shader/dxil: Implement DX instruction StorePatchConstant. vkd3d-shader/dxil: Implement DX instructions LoadOutputControlPoint and LoadPatchConstant. vkd3d-shader/dxil: Support constexpr GEP. vkd3d-shader/dxil: Support patch constant functions and signatures. vkd3d-shader/dxil: Implement DX instruction Discard. vkd3d-shader/dxil: Implement DX instructions EmitStream, CutStream and EmitThenCutStream. vkd3d-shader/dxil: Implement DX instruction SampleIndex. vkd3d-shader/dxil: Implement DX instructions EvalSampleIndex and EvalCentroid. vkd3d-shader/dxil: Implement DX instruction PrimitiveID. vkd3d-shader/dxil: Implement DX instructions ThreadId, GroupId, ThreadIdInGroup and FlattenedThreadIdInGroup. vkd3d-shader/dxil: Implement DX instruction Coverage. vkd3d-shader/dxil: Implement DX instruction RenderTargetGetSampleCount. vkd3d-shader/dxil: Implement DX instructions Texture2DMSGetSamplePosition and RenderTargetGetSamplePosition. vkd3d-shader/dxil: Implement DX intrinsic GetDimensions. vkd3d-shader/dxil: Move the resource kind helper functions up. vkd3d-shader/spirv: Introduce a sample info flag value for a scalar uint dst parameter. vkd3d-shader/dxil: Implement DX instruction CalculateLOD. vkd3d-shader/dxil: Implement DX instructions Dot2, Dot3 and Dot4. vkd3d-shader/dxil: Implement DX instruction MakeDouble. vkd3d-shader/dxil: Implement DX instruction Saturate. vkd3d-shader/dxil: Implement DX instruction FAbs. vkd3d-shader/dxil: Implement DX instructions FMa, FMad, IMad and UMad. vkd3d-shader/spirv: Use source data type in spirv_compiler_emit_imad(). vkd3d-shader/spirv: Support VKD3DSI_PRECISE_XYZW for SINCOS. vkd3d-shader/spirv: Support VKD3DSI_PRECISE_XYZW for GLSL extension instructions. vkd3d-shader/dxil: Implement DX instruction BufferUpdateCounter. vkd3d-shader/dxil: Implement DX Gather* instructions. vkd3d-shader/dxil: Implement DX Sample* instructions. vkd3d-shader/dxil: Read sampler descriptors. vkd3d-shader/dxil: Implement DX instruction Barrier. vkd3d-shader/dxil: Implement DX instructions AtomicBinOp and AtomicCompareExchange. vkd3d-shader/dxil: Implement DX intrinsic RawBufferStore. vkd3d-shader/dxil: Handle raw and structured buffers in sm6_parser_emit_dx_buffer_store(). vkd3d-shader/dxil: Implement DX intrinsic BufferStore. tests/shader-runner: Add a test for a signed int structured buffer UAV. tests/shader-runner: Add a test for a signed int typed buffer UAV. tests/shader-runner: Support structured buffer UAVs. vkd3d-shader/spirv: Do not assert data type is uint in spirv_compiler_emit_store_uav_raw_structured(). vkd3d-shader/dxil: Support I/O registers. vkd3d-shader/dxil: Load hull shader properties. vkd3d-shader/dxil: Load domain shader properties. vkd3d-shader/dxil: Load geometry shader properties. vkd3d-shader/dxil: Implement a CFG structuriser. vkd3d-shader/dxil: Implement the DXIL CMPXCHG instruction. vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
This merge request has too many patches to be relayed via email. Please visit the URL below to see the contents of the merge request. https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/648