From 2b5dc156c7e710518cdba096cf59eab2ec38750d Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 9 Sep 2025 19:11:02 +0200 Subject: [PATCH] vkd3d-shader/hlsl: vsir constant buffer sizes are specified in bytes. --- libs/vkd3d-shader/hlsl_codegen.c | 2 +- libs/vkd3d-shader/tpf.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c index c7014f89b..8d92e4521 100644 --- a/libs/vkd3d-shader/hlsl_codegen.c +++ b/libs/vkd3d-shader/hlsl_codegen.c @@ -12677,7 +12677,7 @@ static void sm4_generate_vsir_add_dcl_constant_buffer(struct hlsl_ctx *ctx, return; } - ins->declaration.cb.size = cbuffer->size; + ins->declaration.cb.size = align(cbuffer->size, 4) * sizeof(float); src_param = &ins->declaration.cb.src; vsir_src_param_init(src_param, VKD3DSPR_CONSTBUFFER, VSIR_DATA_F32, 0); diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index 24a28886b..ec1d8b91e 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -3695,7 +3695,7 @@ static void write_sm4_instruction(const struct tpf_compiler *tpf, const struct s static void tpf_dcl_constant_buffer(const struct tpf_compiler *tpf, const struct vkd3d_shader_instruction *ins) { const struct vkd3d_shader_constant_buffer *cb = &ins->declaration.cb; - size_t size = (cb->size + 3) / 4; + size_t size = cb->size / VKD3D_VEC4_SIZE / sizeof(float); struct sm4_instruction instr = {