-- v23: vkd3d-shader/dxil: Emit a specific warning for explicit wave size. vkd3d-shader/dxil: Emit a specific warning for RT acceleration structs. vkd3d-shader/spirv: Implement the UNPACK_4X8 instruction. vkd3d-shader/dxil: Implement DX intrinsic Unpack4x8. vkd3d-shader/spirv: Implement the PACK_4X8 instruction. vkd3d-shader/dxil: Implement DX intrinsic Pack4x8. vkd3d-shader/dxil: Add a second pre-pass for AnnotateHandle. vkd3d-shader/dxil: Implement DX intrinsics Dot4AddI8Packed and Dot4AddU8Packed. vkd3d-shader/spirv: Introduce DP4_I8 and DP4_U8 instructions. vkd3d-shader/dxil: Support FCMP_ORD and FCMP_UNO for CMP2. vkd3d-shader/spirv: Introduce ORD and UNO instructions. vkd3d-shader/spirv: Support bool comparisons. vkd3d-shader/dxil: Support scalar ALLOCA. vkd3d-shader/dxil: Handle resource handle creation in a pre-pass. vkd3d-shader/dxil: Bitcast the result of image atomic ops if necessary. vkd3d-shader/dxil: Emit an error for mesh, amplification and library shaders. vkd3d: Enable KHR_fragment_shader_barycentric. vkd3d-shader/dxil: Support the barycentrics register type. vkd3d: Enable EXT_shader_image_atomic_int64. vkd3d-shader/spirv: Support 64-bit UAV atomics. vkd3d-shader/dxil: Implement DX intrinsic WaveQuadReadLaneAt. vkd3d-shader/dxil: Implement DX intrinsic WavePrefixOp. vkd3d-shader/dxil: Ignore "llvm.lifetime.*" intrinsics. vkd3d-shader/dxil: Implement DX intrinsic AnnotateHandle. vkd3d-shader/dxil: Implement DX intrinsic CreateHandleFromBinding. vkd3d-shader/dxil: Also set the result type for cast to minimum-precision. vkd3d-shader/dxil: Emit a minimum 4-byte stride for minimum-precision TGSMs. vkd3d-shader/spirv: Do not convert 64-bit write mask to 32-bit if register info is 64-bit. vkd3d-shader/dxil: Handle forward-referenced GEP. vkd3d-shader/ir: Do not validate SSA with a zero write mask. vkd3d-shader/dxil: Ignore the auto binding space property. vkd3d-shader/dxil: Handle constexpr pointer cast. 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-shader/spirv: Support no-op signature elements. 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: Return DXGI_ERROR_NOT_FOUND from 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 instruction CalculateLOD.
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