mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d-shader: Emit IR CBV declaration sizes in bytes.
DXIL declares CBV sizes in bytes and they are not aligned to 16 bytes.
This commit is contained in:
parent
f7525bf0c6
commit
1e5f91b371
Notes:
Alexandre Julliard
2023-10-19 23:23:04 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/401
@ -1626,8 +1626,10 @@ static void shader_dump_instruction(struct vkd3d_d3d_asm_compiler *compiler,
|
||||
case VKD3DSIH_DCL_CONSTANT_BUFFER:
|
||||
vkd3d_string_buffer_printf(buffer, " ");
|
||||
shader_dump_register(compiler, &ins->declaration.cb.src.reg, true);
|
||||
if (shader_ver_ge(&compiler->shader_version, 5, 1))
|
||||
if (shader_ver_ge(&compiler->shader_version, 6, 0))
|
||||
shader_print_subscript(compiler, ins->declaration.cb.size, NULL);
|
||||
else if (shader_ver_ge(&compiler->shader_version, 5, 1))
|
||||
shader_print_subscript(compiler, ins->declaration.cb.size / VKD3D_VEC4_SIZE / sizeof(float), NULL);
|
||||
shader_addline(buffer, ", %s",
|
||||
ins->flags & VKD3DSI_INDEXED_DYNAMIC ? "dynamicIndexed" : "immediateIndexed");
|
||||
shader_dump_register_space(compiler, ins->declaration.cb.range.space);
|
||||
|
@ -884,6 +884,8 @@ static void shader_sm4_read_dcl_constant_buffer(struct vkd3d_shader_instruction
|
||||
ins->declaration.cb.size = *tokens++;
|
||||
shader_sm4_read_register_space(priv, &tokens, end, &ins->declaration.cb.range.space);
|
||||
}
|
||||
|
||||
ins->declaration.cb.size *= VKD3D_VEC4_SIZE * sizeof(float);
|
||||
}
|
||||
|
||||
static void shader_sm4_read_dcl_sampler(struct vkd3d_shader_instruction *ins, uint32_t opcode, uint32_t opcode_token,
|
||||
|
@ -817,7 +817,7 @@ static void vkd3d_shader_scan_constant_buffer_declaration(struct vkd3d_shader_sc
|
||||
if (!(d = vkd3d_shader_scan_add_descriptor(context, VKD3D_SHADER_DESCRIPTOR_TYPE_CBV,
|
||||
&cb->src.reg, &cb->range, VKD3D_SHADER_RESOURCE_BUFFER, VKD3D_SHADER_RESOURCE_DATA_UINT)))
|
||||
return;
|
||||
d->buffer_size = cb->size * 16;
|
||||
d->buffer_size = cb->size;
|
||||
}
|
||||
|
||||
static void vkd3d_shader_scan_sampler_declaration(struct vkd3d_shader_scan_context *context,
|
||||
|
Loading…
Reference in New Issue
Block a user