According to rnndb, GL_CLAMP with value 0x5 is actually supported on nv10+. I'd name the function *_nv10.
I have, at various times, tried to solve some issues by using the 0x5 clamp on my nv1x hardware (nv17 and nv18), with no positive effect. This is a piglit run I have around from some time back: https://people.freedesktop.org/~imirkin/nv10-comparison/problems.html in case you're curious. I guess this is consistent with your results - no change from doing this, until we get to borders. With or without that function name change, this is Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> [apologies this took me a while to get to] On Tue, Jun 27, 2017 at 1:09 PM, Ian Romanick <i...@freedesktop.org> wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > v2: Force T and R wrap modes to GL_CLAMP_TO_EDGE for 1D textures. > This fixes a regression in tex1d-2dborder. The test uses a 1D texture > but it provides S and T texture coordinates. Since the T wrap mode > would (correctly) be set to GL_CLAMP, the texture would gradually > blend (incorrectly) with the border color. > > I also tried setting NV20_3D_TEX_FORMAT_DIMS_1D instead of > NV20_3D_TEX_FORMAT_DIMS_2D for 1D textures, but that did not help. > > It is possible that the same problem exists for 2D textures with the > R-wrap mode, but I don't think there are any piglit tests for that. > > No test changes on NV20 (10de:0201). > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/mesa/drivers/dri/nouveau/nouveau_gldefs.h | 19 +++++++++++++++++++ > src/mesa/drivers/dri/nouveau/nv20_state_tex.c | 16 +++++++++++++--- > 2 files changed, 32 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h > b/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h > index 46ec14e..7df04c1 100644 > --- a/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h > +++ b/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h > @@ -239,6 +239,25 @@ nvgl_wrap_mode(unsigned wrap) > } > > static inline unsigned > +nvgl_wrap_mode_nv20(unsigned wrap) > +{ > + switch (wrap) { > + case GL_REPEAT: > + return 0x1; > + case GL_MIRRORED_REPEAT: > + return 0x2; > + case GL_CLAMP: > + return 0x5; > + case GL_CLAMP_TO_EDGE: > + return 0x3; > + case GL_CLAMP_TO_BORDER: > + return 0x4; > + default: > + unreachable("Bad GL texture wrap mode"); > + } > +} > + > +static inline unsigned > nvgl_filter_mode(unsigned filter) > { > switch (filter) { > diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c > b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c > index b0a4c9f..7972069 100644 > --- a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c > +++ b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c > @@ -193,9 +193,19 @@ nv20_emit_tex_obj(struct gl_context *ctx, int emit) > | NV20_3D_TEX_FORMAT_NO_BORDER > | 1 << 16; > > - tx_wrap = nvgl_wrap_mode(sa->WrapR) << 16 > - | nvgl_wrap_mode(sa->WrapT) << 8 > - | nvgl_wrap_mode(sa->WrapS) << 0; > + switch (t->Target) { > + case GL_TEXTURE_1D: > + tx_wrap = NV20_3D_TEX_WRAP_R_CLAMP_TO_EDGE > + | NV20_3D_TEX_WRAP_T_CLAMP_TO_EDGE > + | nvgl_wrap_mode_nv20(sa->WrapS) << 0; > + break; > + > + default: > + tx_wrap = nvgl_wrap_mode_nv20(sa->WrapR) << 16 > + | nvgl_wrap_mode_nv20(sa->WrapT) << 8 > + | nvgl_wrap_mode_nv20(sa->WrapS) << 0; > + break; > + } > > tx_filter = nvgl_filter_mode(sa->MagFilter) << 24 > | nvgl_filter_mode(sa->MinFilter) << 16 > -- > 2.9.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev