mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 06:58:05 +02:00
r600g: add cb support for snorm formats.
Check for signed type and enable SNORM. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
5722286be2
commit
66866d642f
2 changed files with 13 additions and 9 deletions
|
|
@ -680,10 +680,17 @@ static void evergreen_cb(struct r600_pipe_context *rctx, struct r600_pipe_state
|
|||
level, state->cbufs[cb]->u.tex.first_layer);
|
||||
pitch = rtex->pitch_in_blocks[level] / 8 - 1;
|
||||
slice = rtex->pitch_in_blocks[level] * surf->aligned_height / 64 - 1;
|
||||
ntype = V_028C70_NUMBER_UNORM;
|
||||
desc = util_format_description(surf->base.format);
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (desc->channel[i].type != UTIL_FORMAT_TYPE_VOID) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ntype = V_028C70_NUMBER_UNORM;
|
||||
if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB)
|
||||
ntype = V_028C70_NUMBER_SRGB;
|
||||
else if (desc->channel[i].type == UTIL_FORMAT_TYPE_SIGNED)
|
||||
ntype = V_028C70_NUMBER_SNORM;
|
||||
|
||||
format = r600_translate_colorformat(surf->base.format);
|
||||
swap = r600_translate_colorswap(surf->base.format);
|
||||
|
|
@ -698,11 +705,6 @@ static void evergreen_cb(struct r600_pipe_context *rctx, struct r600_pipe_state
|
|||
S_028C70_BLEND_CLAMP(1) |
|
||||
S_028C70_NUMBER_TYPE(ntype);
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (desc->channel[i].type != UTIL_FORMAT_TYPE_VOID) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* we can only set the export size if any thing is snorm/unorm component is > 11 bits,
|
||||
if we aren't a float, sint or uint */
|
||||
|
|
|
|||
|
|
@ -742,16 +742,18 @@ static void r600_cb(struct r600_pipe_context *rctx, struct r600_pipe_state *rsta
|
|||
level, state->cbufs[cb]->u.tex.first_layer);
|
||||
pitch = rtex->pitch_in_blocks[level] / 8 - 1;
|
||||
slice = rtex->pitch_in_blocks[level] * surf->aligned_height / 64 - 1;
|
||||
ntype = V_0280A0_NUMBER_UNORM;
|
||||
desc = util_format_description(surf->base.format);
|
||||
if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB)
|
||||
ntype = V_0280A0_NUMBER_SRGB;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (desc->channel[i].type != UTIL_FORMAT_TYPE_VOID) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ntype = V_0280A0_NUMBER_UNORM;
|
||||
if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB)
|
||||
ntype = V_0280A0_NUMBER_SRGB;
|
||||
else if (desc->channel[i].type == UTIL_FORMAT_TYPE_SIGNED)
|
||||
ntype = V_0280A0_NUMBER_SNORM;
|
||||
|
||||
format = r600_translate_colorformat(surf->base.format);
|
||||
swap = r600_translate_colorswap(surf->base.format);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue