From 8a44ecdae8bde4767a6eea9b641d4fbe378a9269 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Tue, 24 Apr 2012 23:21:41 +0200 Subject: nv50: enable array textures --- src/gallium/drivers/nv50/codegen/nv50_ir_lowering_nv50.cpp | 3 ++- src/gallium/drivers/nv50/nv50_screen.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/gallium/drivers/nv50') 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: -- cgit v1.2.3