vkd3d-shader/hlsl: Rename struct hlsl_reg_reservation fields.

This commit is contained in:
Francisco Casas
2023-03-06 19:53:29 -03:00
committed by Alexandre Julliard
parent 496f9b42cb
commit 9b70971696
Notes: Alexandre Julliard 2023-04-04 22:35:22 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/106
4 changed files with 22 additions and 21 deletions

View File

@@ -346,8 +346,8 @@ struct hlsl_attribute
* using the register(·) syntax */ * using the register(·) syntax */
struct hlsl_reg_reservation struct hlsl_reg_reservation
{ {
char type; char reg_type;
unsigned int index; unsigned int reg_index;
}; };
struct hlsl_ir_var struct hlsl_ir_var

View File

@@ -1084,12 +1084,12 @@ static struct hlsl_reg_reservation parse_reg_reservation(const char *reg_string)
{ {
struct hlsl_reg_reservation reservation = {0}; struct hlsl_reg_reservation reservation = {0};
if (!sscanf(reg_string + 1, "%u", &reservation.index)) if (!sscanf(reg_string + 1, "%u", &reservation.reg_index))
{ {
FIXME("Unsupported register reservation syntax.\n"); FIXME("Unsupported register reservation syntax.\n");
return reservation; return reservation;
} }
reservation.type = reg_string[0]; reservation.reg_type = reg_string[0];
return reservation; return reservation;
} }
@@ -4349,7 +4349,7 @@ func_prototype_no_attrs:
"Semantics are not allowed on void functions."); "Semantics are not allowed on void functions.");
} }
if ($7.reg_reservation.type) if ($7.reg_reservation.reg_type)
FIXME("Unexpected register reservation for a function.\n"); FIXME("Unexpected register reservation for a function.\n");
if (($$.decl = get_func_decl(&ctx->functions, $3, &$5))) if (($$.decl = get_func_decl(&ctx->functions, $3, &$5)))
@@ -4477,12 +4477,12 @@ colon_attribute:
%empty %empty
{ {
$$.semantic.name = NULL; $$.semantic.name = NULL;
$$.reg_reservation.type = 0; $$.reg_reservation.reg_type = 0;
} }
| semantic | semantic
{ {
$$.semantic = $1; $$.semantic = $1;
$$.reg_reservation.type = 0; $$.reg_reservation.reg_type = 0;
} }
| register_opt | register_opt
{ {

View File

@@ -2307,9 +2307,9 @@ static void allocate_register_reservations(struct hlsl_ctx *ctx)
continue; continue;
regset = hlsl_type_get_regset(var->data_type); regset = hlsl_type_get_regset(var->data_type);
if (var->reg_reservation.type) if (var->reg_reservation.reg_type)
{ {
if (var->reg_reservation.type != get_regset_name(regset)) if (var->reg_reservation.reg_type != get_regset_name(regset))
{ {
struct vkd3d_string_buffer *type_string; struct vkd3d_string_buffer *type_string;
@@ -2322,8 +2322,9 @@ static void allocate_register_reservations(struct hlsl_ctx *ctx)
else else
{ {
var->regs[regset].allocated = true; var->regs[regset].allocated = true;
var->regs[regset].id = var->reg_reservation.index; var->regs[regset].id = var->reg_reservation.reg_index;
TRACE("Allocated reserved %s to %c%u.\n", var->name, var->reg_reservation.type, var->reg_reservation.index); TRACE("Allocated reserved %s to %c%u.\n", var->name, var->reg_reservation.reg_type,
var->reg_reservation.reg_index);
} }
} }
} }
@@ -2898,7 +2899,7 @@ static const struct hlsl_buffer *get_reserved_buffer(struct hlsl_ctx *ctx, uint3
LIST_FOR_EACH_ENTRY(buffer, &ctx->buffers, const struct hlsl_buffer, entry) LIST_FOR_EACH_ENTRY(buffer, &ctx->buffers, const struct hlsl_buffer, entry)
{ {
if (buffer->used_size && buffer->reservation.type == 'b' && buffer->reservation.index == index) if (buffer->used_size && buffer->reservation.reg_type == 'b' && buffer->reservation.reg_index == index)
return buffer; return buffer;
} }
return NULL; return NULL;
@@ -2941,23 +2942,23 @@ static void allocate_buffers(struct hlsl_ctx *ctx)
if (buffer->type == HLSL_BUFFER_CONSTANT) if (buffer->type == HLSL_BUFFER_CONSTANT)
{ {
if (buffer->reservation.type == 'b') if (buffer->reservation.reg_type == 'b')
{ {
const struct hlsl_buffer *reserved_buffer = get_reserved_buffer(ctx, buffer->reservation.index); const struct hlsl_buffer *reserved_buffer = get_reserved_buffer(ctx, buffer->reservation.reg_index);
if (reserved_buffer && reserved_buffer != buffer) if (reserved_buffer && reserved_buffer != buffer)
{ {
hlsl_error(ctx, &buffer->loc, VKD3D_SHADER_ERROR_HLSL_OVERLAPPING_RESERVATIONS, hlsl_error(ctx, &buffer->loc, VKD3D_SHADER_ERROR_HLSL_OVERLAPPING_RESERVATIONS,
"Multiple buffers bound to cb%u.", buffer->reservation.index); "Multiple buffers bound to cb%u.", buffer->reservation.reg_index);
hlsl_note(ctx, &reserved_buffer->loc, VKD3D_SHADER_LOG_ERROR, hlsl_note(ctx, &reserved_buffer->loc, VKD3D_SHADER_LOG_ERROR,
"Buffer %s is already bound to cb%u.", reserved_buffer->name, buffer->reservation.index); "Buffer %s is already bound to cb%u.", reserved_buffer->name, buffer->reservation.reg_index);
} }
buffer->reg.id = buffer->reservation.index; buffer->reg.id = buffer->reservation.reg_index;
buffer->reg.allocated = true; buffer->reg.allocated = true;
TRACE("Allocated reserved %s to cb%u.\n", buffer->name, index); TRACE("Allocated reserved %s to cb%u.\n", buffer->name, index);
} }
else if (!buffer->reservation.type) else if (!buffer->reservation.reg_type)
{ {
while (get_reserved_buffer(ctx, index)) while (get_reserved_buffer(ctx, index))
++index; ++index;
@@ -3043,7 +3044,7 @@ static void allocate_objects(struct hlsl_ctx *ctx, enum hlsl_regset regset)
regset_name, index); regset_name, index);
} }
var->regs[regset].id = var->reg_reservation.index; var->regs[regset].id = var->reg_reservation.reg_index;
var->regs[regset].allocated = true; var->regs[regset].allocated = true;
TRACE("Allocated reserved %s to %c%u.\n", var->name, regset_name, var->regs[regset].id); TRACE("Allocated reserved %s to %c%u.\n", var->name, regset_name, var->regs[regset].id);
} }

View File

@@ -594,7 +594,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc)
var = extern_resources[i]; var = extern_resources[i];
regset = hlsl_type_get_regset(var->data_type); regset = hlsl_type_get_regset(var->data_type);
if (var->reg_reservation.type) if (var->reg_reservation.reg_type)
flags |= D3D_SIF_USERPACKED; flags |= D3D_SIF_USERPACKED;
put_u32(&buffer, 0); /* name */ put_u32(&buffer, 0); /* name */
@@ -624,7 +624,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc)
if (!cbuffer->reg.allocated) if (!cbuffer->reg.allocated)
continue; continue;
if (cbuffer->reservation.type) if (cbuffer->reservation.reg_type)
flags |= D3D_SIF_USERPACKED; flags |= D3D_SIF_USERPACKED;
put_u32(&buffer, 0); /* name */ put_u32(&buffer, 0); /* name */