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 */
struct hlsl_reg_reservation
{
char type;
unsigned int index;
char reg_type;
unsigned int reg_index;
};
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};
if (!sscanf(reg_string + 1, "%u", &reservation.index))
if (!sscanf(reg_string + 1, "%u", &reservation.reg_index))
{
FIXME("Unsupported register reservation syntax.\n");
return reservation;
}
reservation.type = reg_string[0];
reservation.reg_type = reg_string[0];
return reservation;
}
@ -4349,7 +4349,7 @@ func_prototype_no_attrs:
"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");
if (($$.decl = get_func_decl(&ctx->functions, $3, &$5)))
@ -4477,12 +4477,12 @@ colon_attribute:
%empty
{
$$.semantic.name = NULL;
$$.reg_reservation.type = 0;
$$.reg_reservation.reg_type = 0;
}
| semantic
{
$$.semantic = $1;
$$.reg_reservation.type = 0;
$$.reg_reservation.reg_type = 0;
}
| register_opt
{

View File

@ -2307,9 +2307,9 @@ static void allocate_register_reservations(struct hlsl_ctx *ctx)
continue;
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;
@ -2322,8 +2322,9 @@ static void allocate_register_reservations(struct hlsl_ctx *ctx)
else
{
var->regs[regset].allocated = true;
var->regs[regset].id = var->reg_reservation.index;
TRACE("Allocated reserved %s to %c%u.\n", var->name, var->reg_reservation.type, 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.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)
{
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 NULL;
@ -2941,23 +2942,23 @@ static void allocate_buffers(struct hlsl_ctx *ctx)
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)
{
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,
"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;
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))
++index;
@ -3043,7 +3044,7 @@ static void allocate_objects(struct hlsl_ctx *ctx, enum hlsl_regset regset)
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;
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];
regset = hlsl_type_get_regset(var->data_type);
if (var->reg_reservation.type)
if (var->reg_reservation.reg_type)
flags |= D3D_SIF_USERPACKED;
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)
continue;
if (cbuffer->reservation.type)
if (cbuffer->reservation.reg_type)
flags |= D3D_SIF_USERPACKED;
put_u32(&buffer, 0); /* name */