intel/blorp: Support blits and clears on surfaces with offsets
For certain EGLImage cases, we represent a single slice or LOD of an image with a byte offset to a tile and X/Y intratile offsets to the given slice. Most of i965 is fine with this but it breaks blorp. This is a terrible way to represent slices of a surface in EGL and we should stop some day but that's a very scary and thorny path. This gets blorp to start working with those surfaces and fixes some dEQP EGL test bugs. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106629 Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -438,6 +438,15 @@ blorp_clear(struct blorp_batch *batch,
|
||||
params.x1 = x1;
|
||||
params.y1 = y1;
|
||||
|
||||
if (params.dst.tile_x_sa || params.dst.tile_y_sa) {
|
||||
assert(params.dst.surf.samples == 1);
|
||||
assert(num_layers == 1);
|
||||
params.x0 += params.dst.tile_x_sa;
|
||||
params.y0 += params.dst.tile_y_sa;
|
||||
params.x1 += params.dst.tile_x_sa;
|
||||
params.y1 += params.dst.tile_y_sa;
|
||||
}
|
||||
|
||||
/* The MinLOD and MinimumArrayElement don't work properly for cube maps.
|
||||
* Convert them to a single slice on gen4.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user