mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader: Represent descriptor information in the vsir program.
This commit is contained in:
committed by
Henri Verbeet
parent
4308fa3f68
commit
2377db33db
Notes:
Henri Verbeet
2025-03-18 16:04:30 +01:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Elizabeth Figura (@zfigura) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1430
@@ -3105,7 +3105,6 @@ struct spirv_compiler
|
||||
|
||||
uint32_t binding_idx;
|
||||
|
||||
const struct vkd3d_shader_scan_descriptor_info1 *scan_descriptor_info;
|
||||
unsigned int input_control_point_count;
|
||||
unsigned int output_control_point_count;
|
||||
|
||||
@@ -3191,7 +3190,6 @@ static void spirv_compiler_destroy(struct spirv_compiler *compiler)
|
||||
|
||||
static struct spirv_compiler *spirv_compiler_create(const struct vsir_program *program,
|
||||
const struct vkd3d_shader_compile_info *compile_info,
|
||||
const struct vkd3d_shader_scan_descriptor_info1 *scan_descriptor_info,
|
||||
struct vkd3d_shader_message_context *message_context, uint64_t config_flags)
|
||||
{
|
||||
const struct vkd3d_shader_interface_info *shader_interface;
|
||||
@@ -3334,8 +3332,6 @@ static struct spirv_compiler *spirv_compiler_create(const struct vsir_program *p
|
||||
else if (compiler->shader_type != VKD3D_SHADER_TYPE_GEOMETRY)
|
||||
compiler->emit_point_size = compiler->xfb_info && compiler->xfb_info->element_count;
|
||||
|
||||
compiler->scan_descriptor_info = scan_descriptor_info;
|
||||
|
||||
compiler->phase = VKD3DSIH_INVALID;
|
||||
|
||||
vkd3d_string_buffer_cache_init(&compiler->string_buffers);
|
||||
@@ -6732,7 +6728,7 @@ static const struct vkd3d_shader_descriptor_info1 *spirv_compiler_get_descriptor
|
||||
struct spirv_compiler *compiler, enum vkd3d_shader_descriptor_type type,
|
||||
const struct vkd3d_shader_register_range *range)
|
||||
{
|
||||
const struct vkd3d_shader_scan_descriptor_info1 *descriptor_info = compiler->scan_descriptor_info;
|
||||
const struct vkd3d_shader_scan_descriptor_info1 *descriptor_info = &compiler->program->descriptors;
|
||||
unsigned int register_last = (range->last == ~0u) ? range->first : range->last;
|
||||
const struct vkd3d_shader_descriptor_info1 *d;
|
||||
unsigned int i;
|
||||
@@ -11159,11 +11155,12 @@ static void spirv_compiler_emit_io_declarations(struct spirv_compiler *compiler)
|
||||
|
||||
static void spirv_compiler_emit_descriptor_declarations(struct spirv_compiler *compiler)
|
||||
{
|
||||
const struct vkd3d_shader_scan_descriptor_info1 *descriptors = &compiler->program->descriptors;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < compiler->scan_descriptor_info->descriptor_count; ++i)
|
||||
for (i = 0; i < descriptors->descriptor_count; ++i)
|
||||
{
|
||||
const struct vkd3d_shader_descriptor_info1 *descriptor = &compiler->scan_descriptor_info->descriptors[i];
|
||||
const struct vkd3d_shader_descriptor_info1 *descriptor = &descriptors->descriptors[i];
|
||||
struct vkd3d_shader_register_range range;
|
||||
|
||||
range.first = descriptor->register_index;
|
||||
@@ -11354,7 +11351,6 @@ static int spirv_compiler_generate_spirv(struct spirv_compiler *compiler,
|
||||
}
|
||||
|
||||
int spirv_compile(struct vsir_program *program, uint64_t config_flags,
|
||||
const struct vkd3d_shader_scan_descriptor_info1 *scan_descriptor_info,
|
||||
const struct vkd3d_shader_compile_info *compile_info,
|
||||
struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context)
|
||||
{
|
||||
@@ -11367,7 +11363,7 @@ int spirv_compile(struct vsir_program *program, uint64_t config_flags,
|
||||
VKD3D_ASSERT(program->normalisation_level == VSIR_NORMALISED_SM6);
|
||||
|
||||
if (!(spirv_compiler = spirv_compiler_create(program, compile_info,
|
||||
scan_descriptor_info, message_context, config_flags)))
|
||||
message_context, config_flags)))
|
||||
{
|
||||
ERR("Failed to create SPIR-V compiler.\n");
|
||||
return VKD3D_ERROR;
|
||||
|
Reference in New Issue
Block a user