vkd3d-shader/msl: Implement VKD3DSIH_MOV.
1 unresolved thread
1 unresolved thread
Goes atop !1076 (merged)
Merge request reports
Activity
117 { 118 vkd3d_string_buffer_release(cache, dst->mask); 119 vkd3d_string_buffer_release(cache, dst->register_name); 120 } 121 122 static uint32_t msl_dst_init(struct msl_dst *msl_dst, struct msl_generator *gen, 123 const struct vkd3d_shader_instruction *ins, const struct vkd3d_shader_dst_param *vsir_dst) 124 { 125 uint32_t write_mask = vsir_dst->write_mask; 126 127 if (ins->flags & VKD3DSI_PRECISE_XYZW) 128 msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL, 129 "Internal compiler error: Unhandled 'precise' modifier."); 130 if (vsir_dst->reg.non_uniform) 131 msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL, 132 "Internal compiler error: Unhandled 'non-uniform' modifier."); Ah, I hadn't noticed that the checks were already happening, just in a different place. I guess this place is better though.
The issue is that msl_dst_init() can't handle modifiers. I.e., you can handle something like VKD3DSPSM_ABS in msl_src_init() by storing "abs(src)" in msl_src->str, but the way you'd handle something like VKD3DSPDM_SATURATE would be by turning and assignment like "dst = src;" into "dst = clamp(src, 0.0f, 1.0f);".
added 3 commits
-
5bd96afa...a1487380 - 2 commits from branch
wine:master
- 7aa0de27 - vkd3d-shader/msl: Implement VKD3DSIH_MOV.
-
5bd96afa...a1487380 - 2 commits from branch
Please register or sign in to reply