mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/d3dbc: Remove ctx and entry_func args in d3dbc_compile().
This commit is contained in:
committed by
Henri Verbeet
parent
b72ef6038d
commit
4b85e6b1f8
Notes:
Henri Verbeet
2024-09-14 16:54:03 +02:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1072
@@ -1474,10 +1474,6 @@ struct d3dbc_compiler
|
|||||||
struct vkd3d_bytecode_buffer buffer;
|
struct vkd3d_bytecode_buffer buffer;
|
||||||
struct vkd3d_shader_message_context *message_context;
|
struct vkd3d_shader_message_context *message_context;
|
||||||
bool failed;
|
bool failed;
|
||||||
|
|
||||||
/* OBJECTIVE: Store all the required information in the other fields so
|
|
||||||
* that this hlsl_ctx is no longer necessary. */
|
|
||||||
struct hlsl_ctx *ctx;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static uint32_t sm1_version(enum vkd3d_shader_type type, unsigned int major, unsigned int minor)
|
static uint32_t sm1_version(enum vkd3d_shader_type type, unsigned int major, unsigned int minor)
|
||||||
@@ -2312,21 +2308,15 @@ static void d3dbc_write_program_instructions(struct d3dbc_compiler *d3dbc)
|
|||||||
d3dbc_write_vsir_instruction(d3dbc, &program->instructions.elements[i]);
|
d3dbc_write_vsir_instruction(d3dbc, &program->instructions.elements[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OBJECTIVE: Stop relying on ctx and entry_func on this function, receiving
|
|
||||||
* data from the other parameters instead, so it can be removed as an argument
|
|
||||||
* and be declared in vkd3d_shader_private.h and used without relying on HLSL
|
|
||||||
* IR structs. */
|
|
||||||
int d3dbc_compile(struct vsir_program *program, uint64_t config_flags,
|
int d3dbc_compile(struct vsir_program *program, uint64_t config_flags,
|
||||||
const struct vkd3d_shader_compile_info *compile_info, const struct vkd3d_shader_code *ctab,
|
const struct vkd3d_shader_compile_info *compile_info, const struct vkd3d_shader_code *ctab,
|
||||||
struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context,
|
struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context)
|
||||||
struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry_func)
|
|
||||||
{
|
{
|
||||||
const struct vkd3d_shader_version *version = &program->shader_version;
|
const struct vkd3d_shader_version *version = &program->shader_version;
|
||||||
struct d3dbc_compiler d3dbc = {0};
|
struct d3dbc_compiler d3dbc = {0};
|
||||||
struct vkd3d_bytecode_buffer *buffer = &d3dbc.buffer;
|
struct vkd3d_bytecode_buffer *buffer = &d3dbc.buffer;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
d3dbc.ctx = ctx;
|
|
||||||
d3dbc.program = program;
|
d3dbc.program = program;
|
||||||
d3dbc.message_context = message_context;
|
d3dbc.message_context = message_context;
|
||||||
switch (version->type)
|
switch (version->type)
|
||||||
@@ -2354,7 +2344,7 @@ int d3dbc_compile(struct vsir_program *program, uint64_t config_flags,
|
|||||||
|
|
||||||
put_u32(buffer, VKD3D_SM1_OP_END);
|
put_u32(buffer, VKD3D_SM1_OP_END);
|
||||||
|
|
||||||
result = ctx->result;
|
result = VKD3D_OK;
|
||||||
if (buffer->status)
|
if (buffer->status)
|
||||||
result = buffer->status;
|
result = buffer->status;
|
||||||
if (d3dbc.failed)
|
if (d3dbc.failed)
|
||||||
|
@@ -1590,8 +1590,7 @@ bool hlsl_sm1_usage_from_semantic(const char *semantic_name,
|
|||||||
void write_sm1_uniforms(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *buffer);
|
void write_sm1_uniforms(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *buffer);
|
||||||
int d3dbc_compile(struct vsir_program *program, uint64_t config_flags,
|
int d3dbc_compile(struct vsir_program *program, uint64_t config_flags,
|
||||||
const struct vkd3d_shader_compile_info *compile_info, const struct vkd3d_shader_code *ctab,
|
const struct vkd3d_shader_compile_info *compile_info, const struct vkd3d_shader_code *ctab,
|
||||||
struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context,
|
struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context);
|
||||||
struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry_func);
|
|
||||||
|
|
||||||
bool sysval_semantic_from_hlsl(enum vkd3d_shader_sysval_semantic *semantic,
|
bool sysval_semantic_from_hlsl(enum vkd3d_shader_sysval_semantic *semantic,
|
||||||
struct hlsl_ctx *ctx, const struct hlsl_semantic *hlsl_semantic, bool output);
|
struct hlsl_ctx *ctx, const struct hlsl_semantic *hlsl_semantic, bool output);
|
||||||
|
@@ -7732,7 +7732,7 @@ int hlsl_emit_bytecode(struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry
|
|||||||
return ctx->result;
|
return ctx->result;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = d3dbc_compile(&program, config_flags, NULL, &ctab, out, ctx->message_context, ctx, entry_func);
|
result = d3dbc_compile(&program, config_flags, NULL, &ctab, out, ctx->message_context);
|
||||||
vsir_program_cleanup(&program);
|
vsir_program_cleanup(&program);
|
||||||
vkd3d_shader_free_shader_code(&ctab);
|
vkd3d_shader_free_shader_code(&ctab);
|
||||||
return result;
|
return result;
|
||||||
|
Reference in New Issue
Block a user