diff options
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_emit.c | 7 | ||||
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_format.c | 4 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c index 10ebc045503..1240786e4dd 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c @@ -209,15 +209,16 @@ setup_border_colors(struct fd_texture_stateobj *tex, struct bcolor_entry *entrie /* * HACK: for PIPE_FORMAT_X24S8_UINT we end up w/ the * stencil border color value in bc->ui[0] but according - * to desc->swizzle and desc->channel, the .x component + * to desc->swizzle and desc->channel, the .x/.w component * is NONE and the stencil value is in the y component. - * Meanwhile the hardware wants this in the .x componetn. + * Meanwhile the hardware wants this in the .w component + * for x24s8 and the .x component for x32_s8x24. */ if ((format == PIPE_FORMAT_X24S8_UINT) || (format == PIPE_FORMAT_X32_S8X24_UINT)) { if (j == 0) { c = 1; - cd = 0; + cd = (format == PIPE_FORMAT_X32_S8X24_UINT) ? 0 : 3; } else { continue; } diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_format.c b/src/gallium/drivers/freedreno/a6xx/fd6_format.c index 492de2edfcd..5748017633a 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_format.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_format.c @@ -216,7 +216,7 @@ static struct fd6_format formats[PIPE_FORMAT_COUNT] = { _T(R9G9B9E5_FLOAT, 9_9_9_E5_FLOAT, NONE, WZYX), _T(Z24X8_UNORM, X8Z24_UNORM, X8Z24_UNORM, WZYX), - _T(X24S8_UINT, 8_8_8_8_UINT, X8Z24_UNORM, XYZW), // XXX + _T(X24S8_UINT, 8_8_8_8_UINT, X8Z24_UNORM, WZYX), _T(Z24_UNORM_S8_UINT, X8Z24_UNORM, X8Z24_UNORM, WZYX), _T(Z32_FLOAT, 32_FLOAT, R32_FLOAT, WZYX), _T(Z32_FLOAT_S8X24_UINT, 32_FLOAT, R32_FLOAT, WZYX), @@ -453,7 +453,7 @@ fd6_tex_swiz(enum pipe_format format, unsigned char *swiz, */ if (format == PIPE_FORMAT_X24S8_UINT) { const unsigned char stencil_swiz[4] = { - PIPE_SWIZZLE_X, PIPE_SWIZZLE_X, PIPE_SWIZZLE_X, PIPE_SWIZZLE_X + PIPE_SWIZZLE_W, PIPE_SWIZZLE_W, PIPE_SWIZZLE_W, PIPE_SWIZZLE_W }; util_format_compose_swizzles(stencil_swiz, uswiz, swiz); } else if (fd6_pipe2swap(format) != WZYX) { |