nv50: enable indirect addressing of fragment shader inputs
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 11 Jun 2016 15:50:15 +0000 (11:50 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sat, 11 Jun 2016 15:50:42 +0000 (11:50 -0400)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp
src/gallium/drivers/nouveau/nv50/nv50_screen.c

index 5d68e990207e6aec8a60435ec09a4216050bddb0..0fe399bdd8ebfa8f3ee106dc4db32672cccea2c2 100644 (file)
@@ -911,6 +911,7 @@ CodeEmitterNV50::emitINTERP(const Instruction *i)
 
    defId(i->def(0), 2);
    srcAddr8(i->src(0), 16);
+   setAReg16(i, 0);
 
    if (i->encSize != 8 && i->getInterpMode() == NV50_IR_INTERP_FLAT) {
       code[0] |= 1 << 8;
index bcb1ae91337c32e05bd7c51f3d28de30aba71251..03f4591ac707d7ea98fd1262a5bbfe8fe222f2e1 100644 (file)
@@ -306,9 +306,9 @@ nv50_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
       return 65536;
    case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
       return NV50_MAX_PIPE_CONSTBUFS;
-   case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
    case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
       return shader != PIPE_SHADER_FRAGMENT;
+   case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
    case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
    case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
       return 1;