mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
Use the tiled flag in the sarea to determine region tiling.
This fixes mis-rendering if back/depth fail to get set up as tiled. While it probably won't ever be the case now that the pitch limits are loosened, this is still the right thing to do.
This commit is contained in:
parent
8c180c72d5
commit
3943d7f8b1
3 changed files with 9 additions and 4 deletions
|
|
@ -403,7 +403,7 @@ GLboolean intelInitContext( struct intel_context *intel,
|
|||
intelScreen->cpp,
|
||||
intelScreen->front.pitch / intelScreen->cpp,
|
||||
intelScreen->height,
|
||||
GL_FALSE);
|
||||
intelScreen->front.tiled != 0); /* 0: LINEAR */
|
||||
|
||||
|
||||
intel->back_region =
|
||||
|
|
@ -414,7 +414,7 @@ GLboolean intelInitContext( struct intel_context *intel,
|
|||
intelScreen->cpp,
|
||||
intelScreen->back.pitch / intelScreen->cpp,
|
||||
intelScreen->height,
|
||||
(INTEL_DEBUG & DEBUG_TILE) ? 0 : 1);
|
||||
intelScreen->back.tiled != 0);
|
||||
|
||||
/* Still assuming front.cpp == depth.cpp
|
||||
*
|
||||
|
|
@ -430,7 +430,7 @@ GLboolean intelInitContext( struct intel_context *intel,
|
|||
intelScreen->cpp,
|
||||
intelScreen->depth.pitch / intelScreen->cpp,
|
||||
intelScreen->height,
|
||||
(INTEL_DEBUG & DEBUG_TILE) ? 0 : 1);
|
||||
intelScreen->depth.tiled != 0);
|
||||
|
||||
intel_bufferobj_init( intel );
|
||||
intel->batch = intel_batchbuffer_alloc( intel );
|
||||
|
|
|
|||
|
|
@ -230,16 +230,19 @@ intelUpdateScreenFromSAREA(intelScreenPrivate *intelScreen,
|
|||
intelScreen->front.pitch = sarea->pitch * intelScreen->cpp;
|
||||
intelScreen->front.handle = sarea->front_handle;
|
||||
intelScreen->front.size = sarea->front_size;
|
||||
intelScreen->front.tiled = sarea->front_tiled;
|
||||
|
||||
intelScreen->back.offset = sarea->back_offset;
|
||||
intelScreen->back.pitch = sarea->pitch * intelScreen->cpp;
|
||||
intelScreen->back.handle = sarea->back_handle;
|
||||
intelScreen->back.size = sarea->back_size;
|
||||
|
||||
intelScreen->back.tiled = sarea->back_tiled;
|
||||
|
||||
intelScreen->depth.offset = sarea->depth_offset;
|
||||
intelScreen->depth.pitch = sarea->pitch * intelScreen->cpp;
|
||||
intelScreen->depth.handle = sarea->depth_handle;
|
||||
intelScreen->depth.size = sarea->depth_size;
|
||||
intelScreen->depth.tiled = sarea->depth_tiled;
|
||||
|
||||
intelScreen->tex.offset = sarea->tex_offset;
|
||||
intelScreen->logTextureGranularity = sarea->log_tex_granularity;
|
||||
|
|
@ -249,6 +252,7 @@ intelUpdateScreenFromSAREA(intelScreenPrivate *intelScreen,
|
|||
intelScreen->rotated.offset = sarea->rotated_offset;
|
||||
intelScreen->rotated.pitch = sarea->rotated_pitch * intelScreen->cpp;
|
||||
intelScreen->rotated.size = sarea->rotated_size;
|
||||
intelScreen->rotated.tiled = sarea->rotated_tiled;
|
||||
intelScreen->current_rotation = sarea->rotation;
|
||||
#if 0
|
||||
matrix23Rotate(&intelScreen->rotMatrix,
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ typedef struct {
|
|||
char *map; /* memory map */
|
||||
int offset; /* from start of video mem, in bytes */
|
||||
int pitch; /* row stride, in pixels */
|
||||
unsigned int tiled;
|
||||
} intelRegion;
|
||||
|
||||
typedef struct
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue