vkd3d-shader/hlsl: vsir constant buffer sizes are specified in bytes.

This commit is contained in:
Henri Verbeet
2025-09-09 19:11:02 +02:00
parent 7c0b70db85
commit 2b5dc156c7
Notes: Henri Verbeet 2025-09-11 16:15:21 +02:00
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1724
2 changed files with 2 additions and 2 deletions

View File

@@ -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);

View File

@@ -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 =
{