Mesa (master): nv50: enable array textures

Christoph Bumiller chrisbmr at kemper.freedesktop.org
Fri May 4 16:02:04 UTC 2012


Module: Mesa
Branch: master
Commit: 8a44ecdae8bde4767a6eea9b641d4fbe378a9269
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a44ecdae8bde4767a6eea9b641d4fbe378a9269

Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date:   Tue Apr 24 23:21:41 2012 +0200

nv50: enable array textures

---

 .../drivers/nv50/codegen/nv50_ir_lowering_nv50.cpp |    3 ++-
 src/gallium/drivers/nv50/nv50_screen.c             |    4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_lowering_nv50.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_lowering_nv50.cpp
index 27373b4..011014e 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_lowering_nv50.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_lowering_nv50.cpp
@@ -587,7 +587,8 @@ NV50LoweringPreSSA::handleTEX(TexInstruction *i)
    if (i->tex.target.isArray()) {
       Value *layer = i->getSrc(arg - 1);
       LValue *src = new_LValue(func, FILE_GPR);
-      bld.mkCvt(OP_CVT, TYPE_U16, src, TYPE_F32, layer);
+      bld.mkCvt(OP_CVT, TYPE_U32, src, TYPE_F32, layer);
+      bld.mkOp2(OP_MIN, TYPE_U32, src, src, bld.loadImm(NULL, 511));
       i->setSrc(arg - 1, src);
 
       if (i->tex.target.isCube()) {
diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c
index b348919..d72b6e9 100644
--- a/src/gallium/drivers/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nv50/nv50_screen.c
@@ -82,8 +82,8 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
       return 12;
    case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
       return 14;
-   case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: /* shader support missing */
-      return 0;
+   case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS:
+      return 512;
    case PIPE_CAP_MIN_TEXEL_OFFSET:
       return -8;
    case PIPE_CAP_MAX_TEXEL_OFFSET:




More information about the mesa-commit mailing list