In order to validate SPIR-V code we have to fix a little bug that causes us to emit invalid SPIR-V code in some cases. That's technically a bug, so it should be good to fix it in 1.10; unfortunately the way the bug is fixed right now is not ideal, because in some cases it causes many push constants to be wasted, potentially reaching the Vulkan implementation limit, so some application that used to work might stop working. Eventually we should implement a better allocator for push constants, and include an alternative path if the Vulkan implementation doesn't offer enough push constants.
--
v6: ci: Build vkd3d with SPIRV-Tools.
vkd3d-shader/spirv: Honor force_validation after emitting SPIR-V code.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/504
In order to validate SPIR-V code we have to fix a little bug that causes us to emit invalid SPIR-V code in some cases. That's technically a bug, so it should be good to fix it in 1.10; unfortunately the way the bug is fixed right now is not ideal, because in some cases it causes many push constants to be wasted, potentially reaching the Vulkan implementation limit, so some application that used to work might stop working. Eventually we should implement a better allocator for push constants, and include an alternative path if the Vulkan implementation doesn't offer enough push constants.
--
v5: ci: Build vkd3d with SPIRV-Tools.
vkd3d-shader/spirv: Honor force_validation after emitting SPIR-V code.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/504
Like the previous MRs, this has the objective of:
* Preparing the way for SM1-specific tests.
* Running SM1 compilation tests, even if we don't have a runner available to execute them (yet).
* Allowing different runners to run through the shader_test file several times, targeting different shader model ranges.
The current plan is:
* We won't separate compilation tests from execution tests as in !418.
* Instead of naming individual shader models in the shader_test files as in !434, we will keep working with the shader model ranges provided in the [require] directives.
* We will test SM1 compilation going through the shader_test file twice with the vulkan runner, one for SM1 models and other for SM4 models, and for now we will just give a "todo" for execution tests until they are implemented (@zfigura patches).
This first part only includes facilities to properly mark SM1-specific tests (as required by !458) and some refactoring to better work with the idea of intersecting shader model ranges.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/473