mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader/hlsl: Rename struct hlsl_reg_reservation fields.
This commit is contained in:
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
@@ -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
|
||||||
|
@@ -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
|
||||||
{
|
{
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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 */
|
||||||
|
Reference in New Issue
Block a user