Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 73c8529e by Elizabeth Figura at 2025-11-25T20:23:19+01:00 vkd3d-shader/hlsl: Calculate the bind count from the vector width.
Scalars have a reg_size of 4 on sm1. In the case of a deref of a vector or matrix resulting in a scalar, however, this yields a required_bind_count that is one higher than it should be. reg_size is the wrong thing to be using here, since it describes the size of a type in isolation, but this is conceptually an embedded type that doesn't include any padding. Since we're only dealing with scalars and vectors here, just use their width.
- - - - - 26a62720 by Elizabeth Figura at 2025-11-25T20:23:19+01:00 vkd3d-shader/hlsl: Handle HLSL_CLASS_VECTOR in hlsl_regset_index_from_deref().
Loads of components of vectors (i.e. functionally a subset of SWIZZLE instructions, but expressed using LOAD) are legal, and generated elsewhere. Due to circumstances they never reach this point currently, but we shouldn't use vkd3d_unreachable() here.
- - - - - 647482b6 by Elizabeth Figura at 2025-11-25T20:23:19+01:00 vkd3d-shader/hlsl: Avoid creating "index-val" synthetic temps if we can detect the variable was unmodified.
- - - - -
1 changed file:
- libs/vkd3d-shader/hlsl_codegen.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/8a0e578f64e6386bad60d51718c15...