vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
Merge request reports
Activity
added 55 commits
-
f633e4d9...0c5c18bd - 46 commits from branch
wine:master
- d3d4e700 - vkd3d-shader/spirv: Support bool dst register in spirv_compiler_emit_comparison_instruction().
- 5ac2bb11 - vkd3d-shader/dxil: Implement the DXIL CMP2 instruction.
- ffd089aa - vkd3d-shader/spirv: Introduce orderedness to comparison instructions.
- a91890a8 - tests/shader-runner: Add a test for float comparisons.
- a322c7d6 - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- bc7d1ab9 - tests/shader-runner: Add tests for 64-bit casts.
- 6135c67e - tests/shader-runner: Introduce an sm6 condition for test directives.
- 74300842 - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- cd680b39 - vkd3d-shader/spirv: Avoid redundant bool-to-bool conversions in spirv_compiler_emit_movc().
Toggle commit list-
f633e4d9...0c5c18bd - 46 commits from branch
added 6 commits
- c8e0b9a7 - tests/shader-runner: Add a test for float comparisons.
- 73fe6aca - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- ca5ba93f - tests/shader-runner: Add tests for 64-bit casts.
- 814f7c54 - tests/shader-runner: Introduce an sm6 condition for test directives.
- 531b66ce - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- 0ab95440 - vkd3d-shader/spirv: Avoid redundant bool-to-bool conversions in spirv_compiler_emit_movc().
Toggle commit listadded 6 commits
- 23aacda1 - tests/shader-runner: Introduce an sm6 condition for test directives.
- 3e2da434 - tests/shader-runner: Add a test for float comparisons.
- ad790b5d - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- deb85c8f - tests/shader-runner: Add tests for 64-bit casts.
- 8612ff2d - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- 09b7e0cd - vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
Toggle commit listadded 6 commits
- 4ce034c0 - tests/shader-runner: Introduce an sm6 condition for test directives.
- f4bef799 - tests/shader-runner: Add a test for float comparisons.
- 2f62c76b - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- 431f597d - tests/shader-runner: Add tests for 64-bit casts.
- b05d849b - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- befc451f - vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
Toggle commit listadded 12 commits
-
befc451f...22960753 - 6 commits from branch
wine:master
- 65a3c8d9 - tests/shader-runner: Introduce an sm6 condition for test directives.
- 4245f8c4 - tests/shader-runner: Add a test for float comparisons.
- f749ec57 - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- 233a385e - tests/shader-runner: Add tests for 64-bit casts.
- 6bda4a8c - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- fed98c42 - vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
Toggle commit list-
befc451f...22960753 - 6 commits from branch
added 5 commits
- db3aef96 - tests/shader-runner: Add a test for float comparisons.
- 7bb9c573 - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- ae7780c1 - tests/shader-runner: Add tests for 64-bit casts.
- a9fe4ee6 - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- a0ba1c42 - vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
Toggle commit listadded 5 commits
- e0d598d9 - tests/shader-runner: Add a test for float comparisons.
- 2bea5d68 - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- 5e2f9664 - tests/shader-runner: Add tests for 64-bit casts.
- b08e0e8a - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- eea9904c - vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
Toggle commit list- Resolved by Giovanni Mascellani
If the specific syntax of 'if(4<=sm<6)' is a problem I can just set a [require] for SM >= 4.0 and it can be sorted out later. I made it that way primarily because it's simple to parse. I expect it will never be a common condition.
Edited by Conor McCarthy
- Resolved by Giovanni Mascellani
mentioned in merge request !471 (merged)
added 5 commits
- 1109af8b - tests/shader-runner: Add a test for float comparisons.
- 5445b2b1 - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- 32230a36 - tests/shader-runner: Add tests for 64-bit casts.
- 996e7329 - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- 99e81f8a - vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
Toggle commit listadded 6 commits
- 50fb2e25 - tests/shader-runner: Run d3d11 tests with a mimimum shader model of 4.0.
- a32dd779 - tests/shader-runner: Add a test for float comparisons.
- 4b9ad23c - vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
- 40e6891d - tests/shader-runner: Add tests for 64-bit casts.
- d95f798d - vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
- 752c4efd - vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
Toggle commit list747 747 init_adapter_info(); 748 748 if (init_test_context(&runner)) 749 749 { 750 run_shader_tests(&runner.r, &d3d11_runner_ops, NULL, SHADER_MODEL_2_0, SHADER_MODEL_5_1); 750 run_shader_tests(&runner.r, &d3d11_runner_ops, NULL, SHADER_MODEL_4_0, SHADER_MODEL_5_1); Which problem are you having? I think D3D11 is supposed to run SM1-3 fine, so we'd want to include that in our "ground truth".
Reverting this patch, the only problem I get is this:
shader_runner:1602: Running tests from a Windows cross build shader_runner:1604: Compiling shaders with d3dcompiler_47.dll and executing with d3d9.dll shader_runner:95: Driver string: d3d10warp.dll. shader_runner:96: Device: Microsoft Basic Render Driver, 1414:008c. shader_runner:99: Using WARP device. shader_runner:1607: Compiling shaders with d3dcompiler_47.dll and executing with d3d11.dll shader_runner:164: Adapter: Microsoft Basic Render Driver, 1414:008c. shader_runner:168: Using WARP device. shader_runner:727: Section [test], line 45: Test failed: Got {1.01010100e+006, 0.00000000e+000, 1.10100100e+006, 0.00000000e+000}, expected {1.01010100e+006, 1.10011000e+007, 1.10100100e+006, 0.00000000e+000} at (0, 0). shader_runner:1610: Compiling shaders with d3dcompiler_47.dll and executing with d3d12.dll shader_runner:340: Adapter: Microsoft Basic Render Driver, 1414:008c. shader_runner:344: Using WARP device. shader_runner:1544: d3dcompiler_47.dll version: 10.0.22621.4 shader_runner:1544: dxgi.dll version: 10.0.22621.317 shader_runner:1544: d3d9.dll version: 10.0.22621.317 shader_runner:1544: d3d11.dll version: 10.0.22621.317 shader_runner:1544: d3d12.dll version: 10.0.22621.317 shader_runner: 100 tests executed (1 failures, 0 skipped, 0 todo, 0 bugs).
I.e., the difference is not really between SM1-3 and SM4-5, but between D3D9 and D3D11. Unfortunately right now we don't have a way to discriminate on the API rather than on the SM. I'd say that for this specific case you can just ignore what SM1-3 is doing to 0/0 (e.g. by passing a uniform flag that overwrites
result.y
with zero, so you don't have to duplicate the code), that's better than dropping all the SM1-3 tests on D3D11 I think.The problem is even if SM1-3 is specified, the d3d11 runner compiles the shaders as 4.0. Maybe that's the real issue, but there could be other failures if changed.
Ah, right. Well, I think your solution is fine. There is some discussion ongoing in !434 (closed) about how to fix this longer term. Maybe it's not even true that D3D11 can ingest SM1-3, who knows where I got that from.