r600g: don't allocate separate depth and stencil for transfer textures on EG
The state tracker expects depth and stencil pixels interleaved. Evergreen can bind an interleaved depth-stencil resource as a colorbuffer, but not as a zbuffer. The hardware can do the interleaving for us when decompressing.
This commit is contained in:
@@ -394,7 +394,8 @@ r600_texture_create_object(struct pipe_screen *screen,
|
||||
rtex->real_format = base->format;
|
||||
|
||||
/* We must split depth and stencil into two separate buffers on Evergreen. */
|
||||
if (r600_get_family_class(((struct r600_screen*)screen)->radeon) >= EVERGREEN &&
|
||||
if (!(base->flags & R600_RESOURCE_FLAG_TRANSFER) &&
|
||||
r600_get_family_class(((struct r600_screen*)screen)->radeon) >= EVERGREEN &&
|
||||
util_format_is_depth_and_stencil(base->format)) {
|
||||
struct pipe_resource stencil;
|
||||
unsigned stencil_pitch_override = 0;
|
||||
|
Reference in New Issue
Block a user