vkd3d-shader/dxil: Read some shader properties.
Merge request reports
Activity
101 101 102 102 [test] 103 103 draw quad 104 todo(sm>=6) probe (0, 0) rgba (10.0, 11.0, 30.0, 31.0) 104 probe (0, 0) rgba (10.0, 11.0, 30.0, 31.0) 105 106 107 % dxcompiler emits correct array addressing. 108 [require] 109 shader model < 6.0 653 VKD3DSGF_ENABLE_CS4_RAW_STRUCTURED_BUFFERS = 0x20000, 654 VKD3DSGF_ENABLE_RASTERIZER_ORDERED_VIEWS = 0x40000, 655 VKD3DSGF_ENABLE_WAVE_INTRINSICS = 0x80000, 656 VKD3DSGF_ENABLE_INT64 = 0x100000, 657 VKD3DSGF_ENABLE_VIEWID = 0x200000, 658 VKD3DSGF_ENABLE_BARYCENTRICS = 0x400000, 659 VKD3DSGF_FORCE_NATIVE_LOW_PRECISION = 0x800000, 660 VKD3DSGF_ENABLE_SHADINGRATE = 0x1000000, 661 VKD3DSGF_ENABLE_RAYTRACING_TIER_1_1 = 0x2000000, 662 VKD3DSGF_ENABLE_SAMPLER_FEEDBACK = 0x4000000, 663 VKD3DSGF_ENABLE_ATOMIC_INT64_ON_TYPED_RESOURCE = 0x8000000, 664 VKD3DSGF_ENABLE_ATOMIC_INT64_ON_GROUP_SHARED = 0x10000000, 665 VKD3DSGF_ENABLE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS = 0x20000000, 666 VKD3DSGF_ENABLE_RESOURCE_DESCRIPTOR_HEAP_INDEXING = 0x40000000, 667 VKD3DSGF_ENABLE_SAMPLER_DESCRIPTOR_HEAP_INDEXING = 0x80000000, 668 VKD3DSGF_ENABLE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE = 0x100000000ull, You're just following the previous style, so that's not on you, but I find more readable to use
(1ull << ...)
to express bit flags.In the header, sure. I don't think that's necessarily true when looking them up from debug traces though.
Note that while I'll go along with this for reasons of expediency, adding all of these flags at once is still a fair bit coarser than what's ideal; ideally we'd add these one by one as we find shaders needing them. As it is, the d3d-asm and spirv backends can't handle them, and I have no idea which, if any, of these are exercised by the tests.
+ VKD3DSGF_ENABLE_MSAD = 0x80,
Note that VKD3DSGF_ENABLE_MSAD is within VKD3D_SM4_GLOBAL_FLAGS_MASK; does that flag exist in tpf as well?
+enum dxil_shader_properties_tag +{ + SHADER_PROPERTIES_FLAGS = 0, + SHADER_PROPERTIES_GEOMETRY = 1, + SHADER_PROPERTIES_DOMAIN = 2, + SHADER_PROPERTIES_HULL = 3, + SHADER_PROPERTIES_COMPUTE = 4, + SHADER_PROPERTIES_AUTO_BINDING_SPACE = 5, + SHADER_PROPERTIES_RAY_PAYLOAD_SIZE = 6, + SHADER_PROPERTIES_RAY_ATTRIB_SIZE = 7, + SHADER_PROPERTIES_SHADER_KIND = 8, + SHADER_PROPERTIES_MESH = 9, + SHADER_PROPERTIES_AMPLIFICATION = 10, + SHADER_PROPERTIES_WAVE_SIZE = 11, + SHADER_PROPERTIES_ENTRY_ROOT_SIG = 12, +};
Similarly, most of these are unused.
+static void sm6_parser_emit_global_flags(struct sm6_parser *sm6, const struct sm6_metadata_value *m) +{ ... + /* Rotate SKIP_OPTIMIZATION from bit 0 to bit 4 to match TPF. */
We don't particularly care about TPF here; we're translating to vkd3d_shader_global_flags.
added 61 commits
-
d8b79222...9c6c7cb7 - 42 commits from branch
wine:master
- 9c6c7cb7...e68b4213 - 9 earlier commits
- 8584644a - vkd3d-shader/dxil: Read DXIL metadata values.
- afddf8fd - vkd3d-shader/dxil: Read DXIL metadata kinds.
- 3902d5b8 - vkd3d-shader/dxil: Read DXIL metadata named nodes.
- a415d632 - vkd3d-shader/dxil: Validate the entry point info.
- ed6eb946 - vkd3d-shader/dxil: Read the DXIL input and output signatures.
- a4c39ee0 - vkd3d-shader/dxil: Handle signature element additional tag/value pairs.
- 6ff5c892 - vkd3d-shader/dxil: Handle multi-row signature elements.
- e5e42397 - vkd3d-shader: Define more global flags.
- cf43392f - vkd3d-shader/dxil: Read DXIL global flags.
- 0bc0b6b4 - vkd3d-shader/dxil: Read DXIL compute shader thread group dimensions.
Toggle commit list-
d8b79222...9c6c7cb7 - 42 commits from branch
added 16 commits
- 0bc0b6b4...6e405636 - 6 earlier commits
- 8dc1355d - vkd3d-shader/dxil: Read DXIL metadata values.
- 91ab0bd6 - vkd3d-shader/dxil: Read DXIL metadata kinds.
- 30e76ace - vkd3d-shader/dxil: Read DXIL metadata named nodes.
- 1f6ae1e7 - vkd3d-shader/dxil: Validate the entry point info.
- f0aa791a - vkd3d-shader/dxil: Read the DXIL input and output signatures.
- cf29675d - vkd3d-shader/dxil: Handle signature element additional tag/value pairs.
- 68ee7a26 - vkd3d-shader/dxil: Handle multi-row signature elements.
- 4357bae5 - vkd3d-shader: Define more global flags.
- b8b1d2e6 - vkd3d-shader/dxil: Read DXIL global flags.
- 1f0a7a3a - vkd3d-shader/dxil: Read DXIL compute shader thread group dimensions.
Toggle commit listadded 19 commits
-
1f0a7a3a...05d516bb - 7 commits from branch
wine:master
- 05d516bb...696789ef - 2 earlier commits
- 58b2a18f - vkd3d-shader/dxil: Read DXIL metadata values.
- c262051a - vkd3d-shader/dxil: Read DXIL metadata kinds.
- 4a16cadd - vkd3d-shader/dxil: Read DXIL metadata named nodes.
- 191b6c07 - vkd3d-shader/dxil: Validate the entry point info.
- 0a308f31 - vkd3d-shader/dxil: Read the DXIL input and output signatures.
- 4b1071aa - vkd3d-shader/dxil: Handle signature element additional tag/value pairs.
- 82dcf848 - vkd3d-shader/dxil: Handle multi-row signature elements.
- af0572b8 - vkd3d-shader: Define more global flags.
- 79d468a1 - vkd3d-shader/dxil: Read DXIL global flags.
- 71b5539f - vkd3d-shader/dxil: Read DXIL compute shader thread group dimensions.
Toggle commit list-
1f0a7a3a...05d516bb - 7 commits from branch
added 30 commits
-
71b5539f...47d4097e - 27 commits from branch
wine:master
- bac94537 - vkd3d-shader: Define more global flags.
- 141e1541 - vkd3d-shader/dxil: Read DXIL global flags.
- 481854fc - vkd3d-shader/dxil: Read DXIL compute shader thread group dimensions.
Toggle commit list-
71b5539f...47d4097e - 27 commits from branch