mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 06:30:11 +01:00
i965: Use intel_bufferobj_buffer() wrapper in image surface state setup.
Instead of directly using intel_obj->buffer. Among other things
intel_bufferobj_buffer() will update intel_buffer_object::
gpu_active_start/end, which are used by glBufferSubData() to decide
which path to take. Fixes a failure in the Piglit
ARB_shader_image_load_store-host-mem-barrier Buffer Update/WaW tests,
which could be reproduced with a non-standard glGetTexSubImage
implementation (see bug report).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105351
Reported-by: Nanley Chery <nanleychery@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
(cherry picked from commit 936cd3c87a)
This commit is contained in:
parent
86e749a96e
commit
42fa7cf2bb
1 changed files with 5 additions and 3 deletions
|
|
@ -1469,14 +1469,16 @@ update_image_surface(struct brw_context *brw,
|
|||
const unsigned format = get_image_format(brw, u->_ActualFormat, access);
|
||||
|
||||
if (obj->Target == GL_TEXTURE_BUFFER) {
|
||||
struct intel_buffer_object *intel_obj =
|
||||
intel_buffer_object(obj->BufferObject);
|
||||
const unsigned texel_size = (format == ISL_FORMAT_RAW ? 1 :
|
||||
_mesa_get_format_bytes(u->_ActualFormat));
|
||||
const unsigned buffer_size = buffer_texture_range_size(brw, obj);
|
||||
struct brw_bo *const bo = !obj->BufferObject ? NULL :
|
||||
intel_bufferobj_buffer(brw, intel_buffer_object(obj->BufferObject),
|
||||
obj->BufferOffset, buffer_size,
|
||||
access != GL_READ_ONLY);
|
||||
|
||||
brw_emit_buffer_surface_state(
|
||||
brw, surf_offset, intel_obj->buffer, obj->BufferOffset,
|
||||
brw, surf_offset, bo, obj->BufferOffset,
|
||||
format, buffer_size, texel_size,
|
||||
access != GL_READ_ONLY ? RELOC_WRITE : 0);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue