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