diff options
author | Dave Airlie <[email protected]> | 2016-05-27 15:00:57 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2016-08-23 13:39:15 +1000 |
commit | 96ea753d9eb802c95544c79035e89df38daf15f7 (patch) | |
tree | 574d9e64895f5acb37599200de7f23d49c35d05c /src/mesa | |
parent | 34ff4fbba658dbdfb2b0c852b07a0ee2db549d2e (diff) |
i965: report bound buffer size not underlying buffer size for image size (v2)
This seems to make sense, the image is bound to a subset of the buffer
so the image size should be from the bound size not the underlying
object.
This fixes:
GL44-CTS.shader_image_size.advanced-nonMS-fs-int
v2: get mininum of the two values, same as we write to the hw.
Reviewed-by: Francisco Jerez <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index 38701d04eea..2bafe9172f9 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -1384,10 +1384,10 @@ update_buffer_image_param(struct brw_context *brw, struct brw_image_param *param) { struct gl_buffer_object *obj = u->TexObj->BufferObject; - + const uint32_t size = MIN2((uint32_t)u->TexObj->BufferSize, obj->Size); update_default_image_param(brw, u, surface_idx, param); - param->size[0] = obj->Size / _mesa_get_format_bytes(u->_ActualFormat); + param->size[0] = size / _mesa_get_format_bytes(u->_ActualFormat); param->stride[0] = _mesa_get_format_bytes(u->_ActualFormat); } |