mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/dxil: Load forward-referenced sources as value/type pairs in sm6_parser_emit_store().
This commit is contained in:
parent
6a86e1a8d9
commit
2bf517782d
Notes:
Henri Verbeet
2024-09-30 21:05:08 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1118
@ -7286,7 +7286,6 @@ static void sm6_parser_emit_store(struct sm6_parser *sm6, const struct dxil_reco
|
||||
unsigned int i = 0, alignment, operand_count;
|
||||
struct vkd3d_shader_src_param *src_params;
|
||||
struct vkd3d_shader_dst_param *dst_param;
|
||||
const struct sm6_type *pointee_type;
|
||||
const struct sm6_value *ptr, *src;
|
||||
uint64_t alignment_code;
|
||||
|
||||
@ -7298,13 +7297,14 @@ static void sm6_parser_emit_store(struct sm6_parser *sm6, const struct dxil_reco
|
||||
return;
|
||||
}
|
||||
|
||||
pointee_type = ptr->type->u.pointer.type;
|
||||
if (!(src = sm6_parser_get_value_by_ref(sm6, record, pointee_type, &i)))
|
||||
/* Forward-referenced sources are stored as value/type pairs, even
|
||||
* though in principle we could use the destination type. */
|
||||
if (!(src = sm6_parser_get_value_by_ref(sm6, record, NULL, &i)))
|
||||
return;
|
||||
if (!sm6_value_validate_is_numeric(src, sm6))
|
||||
return;
|
||||
|
||||
if (pointee_type != src->type)
|
||||
if (ptr->type->u.pointer.type != src->type)
|
||||
{
|
||||
WARN("Type mismatch.\n");
|
||||
vkd3d_shader_parser_warning(&sm6->p, VKD3D_SHADER_WARNING_DXIL_TYPE_MISMATCH,
|
||||
|
Loading…
x
Reference in New Issue
Block a user