aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/swrast
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/src/mesa/swrast')
-rw-r--r--mesalib/src/mesa/swrast/s_texfetch.c25
-rw-r--r--mesalib/src/mesa/swrast/s_texfetch_tmp.h18
-rw-r--r--mesalib/src/mesa/swrast/s_texfilter.c9
3 files changed, 35 insertions, 17 deletions
diff --git a/mesalib/src/mesa/swrast/s_texfetch.c b/mesalib/src/mesa/swrast/s_texfetch.c
index bcd63b602..7cb6e68b1 100644
--- a/mesalib/src/mesa/swrast/s_texfetch.c
+++ b/mesalib/src/mesa/swrast/s_texfetch.c
@@ -39,6 +39,7 @@
#include "main/texcompress_fxt1.h"
#include "main/texcompress_s3tc.h"
#include "main/texcompress_rgtc.h"
+#include "main/texcompress_etc.h"
#include "main/teximage.h"
#include "s_context.h"
#include "s_texfetch.h"
@@ -361,6 +362,13 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
store_texel_r8,
},
{
+ MESA_FORMAT_GR88,
+ fetch_texel_1d_f_gr88,
+ fetch_texel_2d_f_gr88,
+ fetch_texel_3d_f_gr88,
+ store_texel_gr88,
+ },
+ {
MESA_FORMAT_RG88,
fetch_texel_1d_f_rg88,
fetch_texel_2d_f_rg88,
@@ -368,13 +376,6 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
store_texel_rg88,
},
{
- MESA_FORMAT_RG88_REV,
- fetch_texel_1d_f_rg88_rev,
- fetch_texel_2d_f_rg88_rev,
- fetch_texel_3d_f_rg88_rev,
- store_texel_rg88_rev,
- },
- {
MESA_FORMAT_R16,
fetch_texel_1d_f_r16,
fetch_texel_2d_f_r16,
@@ -1178,6 +1179,13 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
NULL
},
{
+ MESA_FORMAT_ETC1_RGB8,
+ NULL,
+ _mesa_fetch_texel_2d_f_etc1_rgb8,
+ NULL,
+ NULL
+ },
+ {
MESA_FORMAT_SIGNED_A8,
fetch_texel_1d_signed_a8,
fetch_texel_2d_signed_a8,
@@ -1282,7 +1290,8 @@ _mesa_get_texel_fetch_func(gl_format format, GLuint dims)
}
#endif
- assert(Elements(texfetch_funcs) == MESA_FORMAT_COUNT);
+ STATIC_ASSERT(Elements(texfetch_funcs) == MESA_FORMAT_COUNT);
+
assert(format < MESA_FORMAT_COUNT);
switch (dims) {
diff --git a/mesalib/src/mesa/swrast/s_texfetch_tmp.h b/mesalib/src/mesa/swrast/s_texfetch_tmp.h
index 4ee05a5ea..e9512b561 100644
--- a/mesalib/src/mesa/swrast/s_texfetch_tmp.h
+++ b/mesalib/src/mesa/swrast/s_texfetch_tmp.h
@@ -1007,10 +1007,10 @@ static void store_texel_argb2101010(struct swrast_texture_image *texImage,
#endif
-/* MESA_FORMAT_RG88 **********************************************************/
+/* MESA_FORMAT_GR88 **********************************************************/
/* Fetch texel from 1D, 2D or 3D rg88 texture, return 4 GLchans */
-static void FETCH(f_rg88)( const struct swrast_texture_image *texImage,
+static void FETCH(f_gr88)( const struct swrast_texture_image *texImage,
GLint i, GLint j, GLint k, GLfloat *texel )
{
const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
@@ -1021,7 +1021,7 @@ static void FETCH(f_rg88)( const struct swrast_texture_image *texImage,
}
#if DIM == 3
-static void store_texel_rg88(struct swrast_texture_image *texImage,
+static void store_texel_gr88(struct swrast_texture_image *texImage,
GLint i, GLint j, GLint k, const void *texel)
{
const GLchan *rgba = (const GLchan *) texel;
@@ -1033,26 +1033,26 @@ static void store_texel_rg88(struct swrast_texture_image *texImage,
#endif
-/* MESA_FORMAT_RG88_REV ******************************************************/
+/* MESA_FORMAT_RG88 ******************************************************/
/* Fetch texel from 1D, 2D or 3D rg88_rev texture, return 4 GLchans */
-static void FETCH(f_rg88_rev)( const struct swrast_texture_image *texImage,
+static void FETCH(f_rg88)( const struct swrast_texture_image *texImage,
GLint i, GLint j, GLint k, GLfloat *texel )
{
const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
- texel[RCOMP] = UBYTE_TO_FLOAT( s & 0xff );
- texel[GCOMP] = UBYTE_TO_FLOAT( s >> 8 );
+ texel[RCOMP] = UBYTE_TO_FLOAT( s >> 8 );
+ texel[GCOMP] = UBYTE_TO_FLOAT( s & 0xff );
texel[BCOMP] = 0.0;
texel[ACOMP] = 1.0;
}
#if DIM == 3
-static void store_texel_rg88_rev(struct swrast_texture_image *texImage,
+static void store_texel_rg88(struct swrast_texture_image *texImage,
GLint i, GLint j, GLint k, const void *texel)
{
const GLubyte *rgba = (const GLubyte *) texel;
GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
- *dst = PACK_COLOR_88(rgba[GCOMP], rgba[RCOMP]);
+ *dst = PACK_COLOR_88(rgba[RCOMP], rgba[GCOMP]);
}
#endif
diff --git a/mesalib/src/mesa/swrast/s_texfilter.c b/mesalib/src/mesa/swrast/s_texfilter.c
index 566262557..fb172f3a8 100644
--- a/mesalib/src/mesa/swrast/s_texfilter.c
+++ b/mesalib/src/mesa/swrast/s_texfilter.c
@@ -273,6 +273,7 @@ linear_texel_locations(GLenum wrapMode,
default:
_mesa_problem(NULL, "Bad wrap mode");
u = 0.0F;
+ break;
}
*weight = FRAC(u);
}
@@ -471,6 +472,7 @@ clamp_rect_coord_linear(GLenum wrapMode, GLfloat coord, GLint max,
_mesa_problem(NULL, "bad wrapMode in clamp_rect_coord_linear");
i0 = i1 = 0;
fcol = 0.0F;
+ break;
}
*i0out = i0;
*i1out = i1;
@@ -533,6 +535,7 @@ nearest_texcoord(const struct gl_texture_object *texObj,
break;
default:
*i = *j = *k = 0;
+ break;
}
}
@@ -589,6 +592,7 @@ linear_texcoord(const struct gl_texture_object *texObj,
default:
*slice = 0;
+ break;
}
}
@@ -787,6 +791,7 @@ get_border_color(const struct gl_texture_object *tObj,
break;
default:
COPY_4V(rgba, tObj->Sampler.BorderColor.f);
+ break;
}
}
@@ -1537,6 +1542,7 @@ sample_lambda_2d(struct gl_context *ctx,
break;
default:
_mesa_problem(ctx, "Bad mag filter in sample_lambda_2d");
+ break;
}
}
}
@@ -2528,6 +2534,7 @@ sample_lambda_cube(struct gl_context *ctx,
break;
default:
_mesa_problem(ctx, "Bad min filter in sample_lambda_cube");
+ break;
}
}
@@ -2545,6 +2552,7 @@ sample_lambda_cube(struct gl_context *ctx,
break;
default:
_mesa_problem(ctx, "Bad mag filter in sample_lambda_cube");
+ break;
}
}
}
@@ -3473,6 +3481,7 @@ sample_depth_texture( struct gl_context *ctx,
break;
default:
_mesa_problem(ctx, "Bad depth texture mode");
+ break;
}
}
}