freedreno: fix max-line-width
authorRob Clark <robclark@freedesktop.org>
Mon, 11 Apr 2016 21:46:08 +0000 (17:46 -0400)
committerRob Clark <robclark@freedesktop.org>
Wed, 13 Apr 2016 18:15:31 +0000 (14:15 -0400)
dEQP noticed that we were advertising completely bogus values.  The
actual maximum is 127.0f.

*But* we have to use an artifically low maximum to work around a bug
in the dEQP test, which gets confused when the max line width is too
large and lines start going off-screen.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/freedreno_screen.c

index 95bf5ac05ea17d4fcf300c9b2e92ce04350340d0..05100186495f3f87e8527ec4d219260e55cdaf48 100644 (file)
@@ -354,6 +354,16 @@ fd_screen_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
        switch (param) {
        case PIPE_CAPF_MAX_LINE_WIDTH:
        case PIPE_CAPF_MAX_LINE_WIDTH_AA:
+               /* NOTE: actual value is 127.0f, but this is working around a deqp
+                * bug.. dEQP-GLES3.functional.rasterization.primitives.lines_wide
+                * uses too small of a render target size, and gets confused when
+                * the lines start going offscreen.
+                *
+                * See: https://code.google.com/p/android/issues/detail?id=206513
+                */
+               if (fd_mesa_debug & FD_DBG_DEQP)
+                       return 63.0f;
+               return 127.0f;
        case PIPE_CAPF_MAX_POINT_WIDTH:
        case PIPE_CAPF_MAX_POINT_WIDTH_AA:
                return 4092.0f;