From f7599b2c32185535b4c215de0ba0454129fa523f Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Fri, 7 Dec 2012 22:47:40 +0100 Subject: nv50,nvc0: add support for cube map arrays NOTE: nv50 support not enabled, someone with nva3/8 please fix. --- src/gallium/drivers/nvc0/codegen/nv50_ir_emit_gk110.cpp | 1 - src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp | 1 - src/gallium/drivers/nvc0/nvc0_screen.c | 1 + src/gallium/drivers/nvc0/nvc0_tex.c | 9 +++++---- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/gallium/drivers/nvc0') diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_gk110.cpp index 6c229fddf70..c771459d514 100644 --- a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_gk110.cpp @@ -110,7 +110,6 @@ private: void emitTEX(const TexInstruction *); void emitTEXCSAA(const TexInstruction *); void emitTXQ(const TexInstruction *); - void emitPIXLD(const TexInstruction *); void emitQUADOP(const Instruction *, uint8_t qOp, uint8_t laneMask); diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp index cd04f4cfb97..92496a3b6d8 100644 --- a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp +++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp @@ -110,7 +110,6 @@ private: void emitTEX(const TexInstruction *); void emitTEXCSAA(const TexInstruction *); void emitTXQ(const TexInstruction *); - void emitPIXLD(const TexInstruction *); void emitQUADOP(const Instruction *, uint8_t qOp, uint8_t laneMask); diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c index 3bf21913a89..08fc3b4114c 100644 --- a/src/gallium/drivers/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nvc0/nvc0_screen.c @@ -88,6 +88,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_NPOT_TEXTURES: case PIPE_CAP_ANISOTROPIC_FILTER: case PIPE_CAP_SEAMLESS_CUBE_MAP: + case PIPE_CAP_CUBE_MAP_ARRAY: return 1; case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: return (class_3d >= NVE4_3D_CLASS) ? 1 : 0; diff --git a/src/gallium/drivers/nvc0/nvc0_tex.c b/src/gallium/drivers/nvc0/nvc0_tex.c index b52918e1319..2bce97b32c7 100644 --- a/src/gallium/drivers/nvc0/nvc0_tex.c +++ b/src/gallium/drivers/nvc0/nvc0_tex.c @@ -180,10 +180,7 @@ nvc0_create_texture_view(struct pipe_context *pipe, break; case PIPE_TEXTURE_CUBE: depth /= 6; - if (depth > 1) - tic[2] |= NV50_TIC_2_TARGET_CUBE_ARRAY; - else - tic[2] |= NV50_TIC_2_TARGET_CUBE; + tic[2] |= NV50_TIC_2_TARGET_CUBE; break; case PIPE_TEXTURE_1D_ARRAY: tic[2] |= NV50_TIC_2_TARGET_1D_ARRAY; @@ -192,6 +189,10 @@ nvc0_create_texture_view(struct pipe_context *pipe, case PIPE_TEXTURE_2D_ARRAY: tic[2] |= NV50_TIC_2_TARGET_2D_ARRAY; break; + case PIPE_TEXTURE_CUBE_ARRAY: + depth /= 6; + tic[2] |= NV50_TIC_2_TARGET_CUBE_ARRAY; + break; default: NOUVEAU_ERR("invalid texture target: %d\n", mt->base.base.target); return FALSE; -- cgit v1.2.3