Mesa (master): r600/eg: fix buffer sizing.

Dave Airlie airlied at kemper.freedesktop.org
Tue Feb 6 20:08:35 UTC 2018


Module: Mesa
Branch: master
Commit: 736b150768bdf4a0b46fbf8684dcb645d9fa89e3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=736b150768bdf4a0b46fbf8684dcb645d9fa89e3

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Feb  5 06:31:48 2018 +1000

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 at vmware.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/drivers/r600/evergreen_state.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index eb8eb376c2..11e473d604 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -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,




More information about the mesa-commit mailing list