I think this just hides a bug elsewhere. If a colorbuffer format is unsupported, it should never appear in set_framebuffer_state. We should add assert(format != ~0U) everywhere we use the return value of si_translate_colorformat and fix any issue that leads to an assertion failure.
Marek On Wed, Nov 14, 2012 at 8:14 PM, <alexdeuc...@gmail.com> wrote: > From: Alex Deucher <alexander.deuc...@amd.com> > > setting the CB format to Z_INVALID disables the color buffer. > > Signed-off-by: Alex Deucher <alexander.deuc...@amd.com> > --- > src/gallium/drivers/radeonsi/si_state.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/drivers/radeonsi/si_state.c > b/src/gallium/drivers/radeonsi/si_state.c > index 1f76788..a41bcf0 100644 > --- a/src/gallium/drivers/radeonsi/si_state.c > +++ b/src/gallium/drivers/radeonsi/si_state.c > @@ -831,7 +831,7 @@ static uint32_t si_translate_colorformat(enum pipe_format > format) > case PIPE_FORMAT_R4A4_UNORM: > case PIPE_FORMAT_A4R4_UNORM: > default: > - return ~0U; /* Unsupported. */ > + return V_028C70_COLOR_INVALID; /* Unsupported. */ > } > } > > @@ -1432,7 +1432,7 @@ static bool si_is_vertex_format_supported(struct > pipe_screen *screen, enum pipe_ > > static bool si_is_colorbuffer_format_supported(enum pipe_format format) > { > - return si_translate_colorformat(format) != ~0U && > + return si_translate_colorformat(format) != V_028C70_COLOR_INVALID && > si_translate_colorswap(format) != ~0U; > } > > -- > 1.7.7.5 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev