[PATCH vkd3d v2 1/5] vkd3d-shader: Allocate the $Params buffer in hlsl_ctx_init().
Matteo Bruni
matteo.mystral at gmail.com
Thu Jul 1 02:54:06 CDT 2021
On Thu, Jul 1, 2021 at 5:10 AM Zebediah Figura <zfigura at codeweavers.com> wrote:
>
> For clarity.
>
> Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
> ---
> v2: no change
>
> libs/vkd3d-shader/hlsl.c | 3 +++
> libs/vkd3d-shader/hlsl.h | 2 +-
> libs/vkd3d-shader/hlsl_codegen.c | 7 -------
> 3 files changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c
> index 0b8c660c..bc593f82 100644
> --- a/libs/vkd3d-shader/hlsl.c
> +++ b/libs/vkd3d-shader/hlsl.c
> @@ -1664,6 +1664,9 @@ static bool hlsl_ctx_init(struct hlsl_ctx *ctx, const struct hlsl_profile_info *
> if (!(ctx->globals_buffer = hlsl_new_buffer(ctx, HLSL_BUFFER_CONSTANT,
> hlsl_strdup(ctx, "$Globals"), NULL, ctx->location)))
> return false;
> + if (!(ctx->params_buffer = hlsl_new_buffer(ctx, HLSL_BUFFER_CONSTANT,
> + hlsl_strdup(ctx, "$Params"), NULL, ctx->location)))
> + return false;
> ctx->cur_buffer = ctx->globals_buffer;
>
> return true;
> diff --git a/libs/vkd3d-shader/hlsl.h b/libs/vkd3d-shader/hlsl.h
> index b62e7818..e0045acf 100644
> --- a/libs/vkd3d-shader/hlsl.h
> +++ b/libs/vkd3d-shader/hlsl.h
> @@ -456,7 +456,7 @@ struct hlsl_ctx
> struct list extern_vars;
>
> struct list buffers;
> - struct hlsl_buffer *cur_buffer, *globals_buffer;
> + struct hlsl_buffer *cur_buffer, *globals_buffer, *params_buffer;
> struct list types;
> struct rb_tree functions;
> const struct hlsl_ir_function_decl *cur_function;
> diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c
> index 6336ddfc..9afa590a 100644
> --- a/libs/vkd3d-shader/hlsl_codegen.c
> +++ b/libs/vkd3d-shader/hlsl_codegen.c
> @@ -1150,13 +1150,6 @@ static void allocate_buffers(struct hlsl_ctx *ctx)
> hlsl_strdup(ctx, "$Params"), NULL, ctx->location)))
> return;
>
> - /* The $Globals and $Params buffers should be allocated first, before all
> - * explicit buffers. */
> - list_remove(¶ms_buffer->entry);
> - list_add_head(&ctx->buffers, ¶ms_buffer->entry);
> - list_remove(&ctx->globals_buffer->entry);
> - list_add_head(&ctx->buffers, &ctx->globals_buffer->entry);
> -
> LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry)
> {
> if (var->is_uniform)
> --
> 2.32.0
On second thought, I withdraw my signed-off. It's only partially
visible here but it seems we're still (re)creating the $Params buffer
right above this removed hunk.
More information about the wine-devel
mailing list