mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/tpf: Do not write structs with no numeric fields into the RDEF.
This commit is contained in:
parent
0b1f11dd33
commit
34e9c101e8
Notes:
Alexandre Julliard
2024-03-27 23:06:24 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/626
@ -3474,8 +3474,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc)
|
|||||||
|
|
||||||
LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry)
|
LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry)
|
||||||
{
|
{
|
||||||
if (var->is_uniform && var->buffer == cbuffer
|
if (var->is_uniform && var->buffer == cbuffer && var->data_type->reg_size[HLSL_REGSET_NUMERIC])
|
||||||
&& var->data_type->class != HLSL_CLASS_OBJECT)
|
|
||||||
++var_count;
|
++var_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3509,8 +3508,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc)
|
|||||||
|
|
||||||
LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry)
|
LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry)
|
||||||
{
|
{
|
||||||
if (var->is_uniform && var->buffer == cbuffer
|
if (var->is_uniform && var->buffer == cbuffer && var->data_type->reg_size[HLSL_REGSET_NUMERIC])
|
||||||
&& var->data_type->class != HLSL_CLASS_OBJECT)
|
|
||||||
{
|
{
|
||||||
uint32_t flags = 0;
|
uint32_t flags = 0;
|
||||||
|
|
||||||
@ -3537,8 +3535,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc)
|
|||||||
j = 0;
|
j = 0;
|
||||||
LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry)
|
LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry)
|
||||||
{
|
{
|
||||||
if (var->is_uniform && var->buffer == cbuffer
|
if (var->is_uniform && var->buffer == cbuffer && var->data_type->reg_size[HLSL_REGSET_NUMERIC])
|
||||||
&& var->data_type->class != HLSL_CLASS_OBJECT)
|
|
||||||
{
|
{
|
||||||
const unsigned int var_size = (profile->major_version >= 5 ? 10 : 6);
|
const unsigned int var_size = (profile->major_version >= 5 ? 10 : 6);
|
||||||
size_t var_offset = vars_start + j * var_size * sizeof(uint32_t);
|
size_t var_offset = vars_start + j * var_size * sizeof(uint32_t);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user