diff options
author | Christoph Bumiller <[email protected]> | 2012-04-24 23:21:41 +0200 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2012-05-04 18:00:03 +0200 |
commit | 8a44ecdae8bde4767a6eea9b641d4fbe378a9269 (patch) | |
tree | 720435ef80a77439ab3fe5ae3ba5e6ba42e24bd9 /src/gallium | |
parent | c66dc0ea8ecfa3048189648b5092de99a943d82d (diff) |
nv50: enable array textures
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/nv50/codegen/nv50_ir_lowering_nv50.cpp | 3 | ||||
-rw-r--r-- | 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 27373b4cc47..011014eb5ba 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 b3489198d2b..d72b6e91d2a 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: |