Shader Model 6 introduces a 16-bit float (half) type, and 16-bit and 64-bit integer types. Storing extra info in the type enum simplifies checking if a type is any integer, floating point or numeric type, and the declaration of SPIR-V types. The benefits depend on using enum vkd3d_data_type in the backend instead of vkd3d_shader_component_type.
Patch 2 is difficult to split because types typically flow through to vkd3d_spirv_get_type_id(), so partial changes would require new calls to conversion functions which would be deleted again later.
--
v3: vkd3d-shader/spirv: Use a helper function to check if a data type is floating point.
vkd3d-shader/spirv: Use vkd3d_spirv_get_op_constant() for 64-bit types.
vkd3d-shader/spirv: Use enum vkd3d_data_type instead of vkd3d_shader_component_type.
vkd3d-shader: Encode type info in enum vkd3d_data_type values.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/263
Fix the issue of incorrect linkid calculation due to a lack of judgment on the current type.
Signed-off-by: Zhaoyi <zhaoyi(a)uniontech.com>
--
v12: comctl32/tests: Add a test case to get syslinkid.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3114
It can be unnecessary at best and unsupported at worst (e.g. no ARB_texture_multisample).
--
v2: wined3d: Don't force going through a texture when downloading from renderbuffers.
wined3d: Handle depth textures in texture2d_read_from_framebuffer().
wined3d: Rename wined3d_context_gl_apply_fbo_state_blit() function.
wined3d: Factor out a wined3d_context_gl_apply_blit_state_fb() function.
wined3d: Don't call wined3d_texture_load() from wined3d_context_gl_apply_blit_state().
wined3d: Don't bind the FBO to GL_READ_FRAMEBUFFER in wined3d_context_gl_apply_blit_state().
wined3d: Don't call wined3d_context_gl_apply_blit_state() from texture2d_read_from_framebuffer().
https://gitlab.winehq.org/wine/wine/-/merge_requests/3211
IIRC you also mentioned that specifying a conflicting majority through modifiers results an a compile error (much like with pragmas). Can we have tests for that too, please?
Also, is there any reason not to add these tests to vkd3d?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3263#note_38726
Mainly promoting single object components to variables for SM 5.0's RDEF block and lowering combined samplers to separate sampler+texture objects for SM 4.
Following patches (including prepending uniform copies resource components within struct parameters) in:
https://gitlab.winehq.org/fcasas/vkd3d/-/commits/master6c
--
v4: vkd3d-shader/hlsl: Don't allocate all texture registers for synthetic separated samplers.
vkd3d-shader/hlsl: Lower combined samplers to separate sampler and texture objects for SM4.
vkd3d-shader/hlsl: Separate tracking of sampler_dim and usage for object components.
vkd3d-shader/hlsl: Introduce hlsl_new_synthetic_var_named().
vkd3d-shader/hlsl: Check is_uniform instead of HLSL_STORAGE_UNIFORM when validating object refs.
tests: Add lowering combined samplers tests.
vkd3d-shader/hlsl: Handle resource components individually for SM 5.0.
vkd3d-shader/tpf: Introduce struct extern_resource.
vkd3d-shader/hlsl: Allow derefs to provide the data_type.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/209