On Fri, Feb 8, 2013 at 1:56 AM, Brian Paul <bri...@vmware.com> wrote: > On 02/07/2013 01:13 PM, Marek Olšák wrote: >> >> This is for glGetTexImage and it will be used for samplers only (which >> some >> drivers already implement by reading util_format_description). >> --- >> src/gallium/auxiliary/util/u_format.csv | 12 +++ >> src/gallium/auxiliary/util/u_format.h | 123 >> +++++++++++++++++++++++++++++++ >> src/gallium/include/pipe/p_format.h | 12 +++ >> 3 files changed, 147 insertions(+) >> >> diff --git a/src/gallium/auxiliary/util/u_format.csv >> b/src/gallium/auxiliary/util/u_format.csv >> index 1d27407..f3925bb 100644 >> --- a/src/gallium/auxiliary/util/u_format.csv >> +++ b/src/gallium/auxiliary/util/u_format.csv >> @@ -360,3 +360,15 @@ PIPE_FORMAT_R16G16B16X16_SINT , plain, 1, 1, >> sp16, sp16, sp16, x16, xyz1, >> PIPE_FORMAT_R32G32B32X32_FLOAT , plain, 1, 1, f32, f32, f32, >> x32, xyz1, rgb >> PIPE_FORMAT_R32G32B32X32_UINT , plain, 1, 1, up32, up32, up32, >> x32, xyz1, rgb >> PIPE_FORMAT_R32G32B32X32_SINT , plain, 1, 1, sp32, sp32, sp32, >> x32, xyz1, rgb >> + >> +PIPE_FORMAT_R8A8_SNORM , plain, 1, 1, sn8 , sn8 , , >> , x00y, rgb >> +PIPE_FORMAT_R16A16_UNORM , plain, 1, 1, un16 , un16 , , >> , x00y, rgb >> +PIPE_FORMAT_R16A16_SNORM , plain, 1, 1, sn16 , sn16 , , >> , x00y, rgb >> +PIPE_FORMAT_R16A16_FLOAT , plain, 1, 1, f16 , f16 , , >> , x00y, rgb >> +PIPE_FORMAT_R32A32_FLOAT , plain, 1, 1, f32 , f32 , , >> , x00y, rgb >> +PIPE_FORMAT_R8A8_UINT , plain, 1, 1, up8 , up8 , , >> , x00y, rgb >> +PIPE_FORMAT_R8A8_SINT , plain, 1, 1, sp8 , sp8 , , >> , x00y, rgb >> +PIPE_FORMAT_R16A16_UINT , plain, 1, 1, up16 , up16 , , >> , x00y, rgb >> +PIPE_FORMAT_R16A16_SINT , plain, 1, 1, sp16 , sp16 , , >> , x00y, rgb >> +PIPE_FORMAT_R32A32_UINT , plain, 1, 1, up32 , up32 , , >> , x00y, rgb >> +PIPE_FORMAT_R32A32_SINT , plain, 1, 1, sp32 , sp32 , , >> , x00y, rgb >> diff --git a/src/gallium/auxiliary/util/u_format.h >> b/src/gallium/auxiliary/util/u_format.h >> index 63015dd..1a5d954 100644 >> --- a/src/gallium/auxiliary/util/u_format.h >> +++ b/src/gallium/auxiliary/util/u_format.h >> @@ -888,6 +888,129 @@ util_format_stencil_only(enum pipe_format format) >> } >> >> /** >> + * Converts PIPE_FORMAT_*I* to PIPE_FORMAT_*R*. >> + * This is identity for non-intensity formats. >> + */ >> +static INLINE enum pipe_format >> +util_format_intensity_to_red(enum pipe_format format) >> +{ >> + if (!util_format_is_intensity(format)) >> + return format; > > > If we removed that test, and just did 'return format' for the default case, > wouldn't that work too? We seem to be catching all the intensity formats in > the switch. That way we could avoid a util_format_description() call. > > Then, the default case below could have > assert(!util_format_is_intensity(format)) > as a sanity check.
You're right. The assertion would suffice, I'll update the patch. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev