summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Barbieri <[email protected]>2010-09-04 02:05:14 +0200
committerLuca Barbieri <[email protected]>2010-09-04 02:08:02 +0200
commitfa82ad84fbe2be2bbfe9de7cda3e901a069ae16c (patch)
tree7ef84da339b307e7a961a3b8e23e7b839ca6aa15
parent60fe5757aea835214c45f05aa940e8e9e3dbd5da (diff)
nvfx: set magic bit to round NPOT mipmap sizes down and not up
Does any API even use rounding-up?
-rw-r--r--src/gallium/drivers/nouveau/nouveau_class.h3
-rw-r--r--src/gallium/drivers/nvfx/nvfx_screen.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nouveau_class.h b/src/gallium/drivers/nouveau/nouveau_class.h
index 20941f379c7..3c2248b6249 100644
--- a/src/gallium/drivers/nouveau/nouveau_class.h
+++ b/src/gallium/drivers/nouveau/nouveau_class.h
@@ -6877,6 +6877,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV40TCL_COLOR_LOGIC_OP_SET 0x0000150f
#define NV40TCL_DEPTH_RANGE_NEAR 0x00000394
#define NV40TCL_DEPTH_RANGE_FAR 0x00000398
+#define NV40TCL_MIPMAP_ROUNDING 0x000003b0
+#define NV40TCL_MIPMAP_ROUNDING_UP 0x00000000
+#define NV40TCL_MIPMAP_ROUNDING_DOWN 0x00100000
#define NV40TCL_LINE_WIDTH 0x000003b8
#define NV40TCL_LINE_SMOOTH_ENABLE 0x000003bc
#define NV40TCL_UNK03C0(x) (0x000003c0+((x)*4))
diff --git a/src/gallium/drivers/nvfx/nvfx_screen.c b/src/gallium/drivers/nvfx/nvfx_screen.c
index e6ba7bc87a0..b5b7a340819 100644
--- a/src/gallium/drivers/nvfx/nvfx_screen.c
+++ b/src/gallium/drivers/nvfx/nvfx_screen.c
@@ -328,6 +328,9 @@ static void nv40_screen_init(struct nvfx_screen *screen)
OUT_RING(chan, 0x00d30000);
OUT_RING(chan, RING_3D(0x1e94, 1));
OUT_RING(chan, 0x00000001);
+
+ OUT_RING(chan, RING_3D(NV40TCL_MIPMAP_ROUNDING, 1));
+ OUT_RING(chan, NV40TCL_MIPMAP_ROUNDING_DOWN);
}
static unsigned