i965/wm: use binding size for ubo/ssbo when automatic size is unset
This fixes the same tests that commit 8cf2e892f was attempting to fix:
ES31-CTS.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-std430-vec-bindrangeOffset
ES31-CTS.shader_storage_buffer_object.advanced-unsizedArrayLength-cs-std430-vec-bindrangeSize
as confirmed by Samuel.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Cc: Marta Lofstedt <marta.lofstedt@intel.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
This commit is contained in:
@@ -946,12 +946,15 @@ brw_upload_ubo_surfaces(struct brw_context *brw,
|
||||
} else {
|
||||
struct intel_buffer_object *intel_bo =
|
||||
intel_buffer_object(binding->BufferObject);
|
||||
GLsizeiptr size = binding->BufferObject->Size - binding->Offset;
|
||||
if (!binding->AutomaticSize)
|
||||
size = MIN2(size, binding->Size);
|
||||
drm_intel_bo *bo =
|
||||
intel_bufferobj_buffer(brw, intel_bo,
|
||||
binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset);
|
||||
size);
|
||||
brw_create_constant_surface(brw, bo, binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset,
|
||||
size,
|
||||
&ubo_surf_offsets[i]);
|
||||
}
|
||||
}
|
||||
@@ -968,12 +971,15 @@ brw_upload_ubo_surfaces(struct brw_context *brw,
|
||||
} else {
|
||||
struct intel_buffer_object *intel_bo =
|
||||
intel_buffer_object(binding->BufferObject);
|
||||
GLsizeiptr size = binding->BufferObject->Size - binding->Offset;
|
||||
if (!binding->AutomaticSize)
|
||||
size = MIN2(size, binding->Size);
|
||||
drm_intel_bo *bo =
|
||||
intel_bufferobj_buffer(brw, intel_bo,
|
||||
binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset);
|
||||
size);
|
||||
brw_create_buffer_surface(brw, bo, binding->Offset,
|
||||
binding->BufferObject->Size - binding->Offset,
|
||||
size,
|
||||
&ssbo_surf_offsets[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user