mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 18:38:11 +02:00
r600/eg: fix buffer sizing.
For buffers we want the size in bytes, For images we want it in elements. This fixes: KHR-GL45.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-std430-vec-pad Reviewed-by: Roland Scheidegger <sroland@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
c9c4f0b722
commit
736b150768
1 changed files with 3 additions and 1 deletions
|
|
@ -616,6 +616,7 @@ struct eg_buf_res_params {
|
|||
unsigned char swizzle[4];
|
||||
bool uncached;
|
||||
bool force_swizzle;
|
||||
bool size_in_bytes;
|
||||
};
|
||||
|
||||
static void evergreen_fill_buffer_resource_words(struct r600_context *rctx,
|
||||
|
|
@ -658,7 +659,7 @@ static void evergreen_fill_buffer_resource_words(struct r600_context *rctx,
|
|||
* albeit the amd gpu shader analyser
|
||||
* uses a const buffer to store the element sizes for buffer txq
|
||||
*/
|
||||
tex_resource_words[4] = params->size / stride;
|
||||
tex_resource_words[4] = params->size_in_bytes ? params->size : (params->size / stride);
|
||||
|
||||
tex_resource_words[5] = tex_resource_words[6] = 0;
|
||||
tex_resource_words[7] = S_03001C_TYPE(V_03001C_SQ_TEX_VTX_VALID_BUFFER);
|
||||
|
|
@ -4041,6 +4042,7 @@ static void evergreen_set_shader_buffers(struct pipe_context *ctx,
|
|||
buf_params.swizzle[3] = PIPE_SWIZZLE_W;
|
||||
buf_params.force_swizzle = true;
|
||||
buf_params.uncached = 1;
|
||||
buf_params.size_in_bytes = true;
|
||||
evergreen_fill_buffer_resource_words(rctx, &resource->b.b,
|
||||
&buf_params,
|
||||
&rview->skip_mip_address_reloc,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue