gallium: try and update r300 and nv drivers for tgsi changes
authorKeith Whitwell <keithw@vmware.com>
Tue, 24 Nov 2009 14:09:24 +0000 (14:09 +0000)
committerKeith Whitwell <keithw@vmware.com>
Tue, 24 Nov 2009 14:09:24 +0000 (14:09 +0000)
It would be nice if these drivers built under the linux-debug header
so that these types of interface changes can be minimally propogated
into those drivers by people without the hardware.  They don't have to
generate a working driver -- though a command-dumping winsys would be
an excellent for regression checking.

src/gallium/drivers/i915/i915_fpc_translate.c
src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
src/gallium/drivers/nv20/nv20_vertprog.c
src/gallium/drivers/nv30/nv30_fragprog.c
src/gallium/drivers/nv30/nv30_vertprog.c
src/gallium/drivers/nv40/nv40_fragprog.c
src/gallium/drivers/nv40/nv40_vertprog.c
src/gallium/drivers/nv50/nv50_program.c
src/gallium/drivers/r300/r300_tgsi_to_rc.c

index a96ba8f192e9bf64528eb9aa4f81cbd8065eaa0f..f2554998a9e5caf3964c5723510d74fb34ed8798 100644 (file)
@@ -229,12 +229,11 @@ src_vector(struct i915_fp_compile *p,
       src = negate(src, n, n, n, n);
    }
 
-   /* no abs() or post-abs negation */
+   /* no abs() */
 #if 0
    /* XXX assertions disabled to allow arbfplight.c to run */
    /* XXX enable these assertions, or fix things */
-   assert(!source->SrcRegisterExtMod.Absolute);
-   assert(!source->SrcRegisterExtMod.Negate);
+   assert(!source->SrcRegister.Absolute);
 #endif
    return src;
 }
index 64027de6aa9b116fb6c0b84013da22af3518927a..b2234ef67988c6ab3aa81d3c05163c7bf949e9b7 100644 (file)
@@ -326,7 +326,7 @@ emit_tex( struct lp_build_tgsi_soa_context *bld,
    unsigned num_coords;
    unsigned i;
 
-   switch (inst->InstructionExtTexture.Texture) {
+   switch (inst->InstructionTexture.Texture) {
    case TGSI_TEXTURE_1D:
       num_coords = 1;
       break;
index 388245ecb042a430ed800588a497ec88423726e1..48df356fafc4a8b2b16db9eddc36a4a75198ad58 100644 (file)
@@ -273,7 +273,7 @@ tgsi_src(struct nv20_vpc *vpc, const struct tgsi_full_src_register *fsrc) {
                break;
        }
 
-       src.abs = fsrc->SrcRegisterExtMod.Absolute;
+       src.abs = fsrc->SrcRegister.Absolute;
        src.negate = fsrc->SrcRegister.Negate;
        src.swz[0] = fsrc->SrcRegister.SwizzleX;
        src.swz[1] = fsrc->SrcRegister.SwizzleY;
index 0ce702d6f8449d6ca8399d03ce0d7f0943df7b48..eb978b683817b7d7ff14396f781aee20df835557 100644 (file)
@@ -268,7 +268,7 @@ tgsi_src(struct nv30_fpc *fpc, const struct tgsi_full_src_register *fsrc)
                break;
        }
 
-       src.abs = fsrc->SrcRegisterExtMod.Absolute;
+       src.abs = fsrc->SrcRegister.Absolute;
        src.negate = fsrc->SrcRegister.Negate;
        src.swz[0] = fsrc->SrcRegister.SwizzleX;
        src.swz[1] = fsrc->SrcRegister.SwizzleY;
index 14a5c0260d073a6c139a0ac537bbcdcc2f4beeb7..b04fb229bc918fec4fda04595e0d9e64ae8bf143 100644 (file)
@@ -273,7 +273,7 @@ tgsi_src(struct nv30_vpc *vpc, const struct tgsi_full_src_register *fsrc) {
                break;
        }
 
-       src.abs = fsrc->SrcRegisterExtMod.Absolute;
+       src.abs = fsrc->SrcRegister.Absolute;
        src.negate = fsrc->SrcRegister.Negate;
        src.swz[0] = fsrc->SrcRegister.SwizzleX;
        src.swz[1] = fsrc->SrcRegister.SwizzleY;
index 99277506fc207dddcfa6e89279269d35be76a6e8..dbbb736670ead41c090515a3b7625b37ada27f62 100644 (file)
@@ -279,7 +279,7 @@ tgsi_src(struct nv40_fpc *fpc, const struct tgsi_full_src_register *fsrc)
                break;
        }
 
-       src.abs = fsrc->SrcRegisterExtMod.Absolute;
+       src.abs = fsrc->SrcRegister.Absolute;
        src.negate = fsrc->SrcRegister.Negate;
        src.swz[0] = fsrc->SrcRegister.SwizzleX;
        src.swz[1] = fsrc->SrcRegister.SwizzleY;
index 31dae2457fdcdf3ab52646773b7fb9f398b85641..df9cb227a3dcafb754a3d10a68f62e754aabf0ae 100644 (file)
@@ -313,7 +313,7 @@ tgsi_src(struct nv40_vpc *vpc, const struct tgsi_full_src_register *fsrc) {
                break;
        }
 
-       src.abs = fsrc->SrcRegisterExtMod.Absolute;
+       src.abs = fsrc->SrcRegister.Absolute;
        src.negate = fsrc->SrcRegister.Negate;
        src.swz[0] = fsrc->SrcRegister.SwizzleX;
        src.swz[1] = fsrc->SrcRegister.SwizzleY;
index bf50982dd162c3278fcddf3105e537965f47a863..e40e37d07c342276c3ffec2b9ca578c2163306f4 100644 (file)
@@ -1575,10 +1575,10 @@ nv50_tgsi_src_mask(const struct tgsi_full_instruction *insn, int c)
        case TGSI_OPCODE_TEX:
        case TGSI_OPCODE_TXP:
        {
-               const struct tgsi_instruction_ext_texture *tex;
+               const struct tgsi_instruction_texture *tex;
 
-               assert(insn->Instruction.Extended);
-               tex = &insn->InstructionExtTexture;
+               assert(insn->Instruction.Texture);
+               tex = &insn->InstructionTexture;
 
                mask = 0x7;
                if (insn->Instruction.Opcode == TGSI_OPCODE_TXP)
@@ -2181,11 +2181,11 @@ nv50_program_tx_insn(struct nv50_pc *pc,
                break;
        case TGSI_OPCODE_TEX:
                emit_tex(pc, dst, mask, src[0], unit,
-                        inst->InstructionExtTexture.Texture, FALSE);
+                        inst->InstructionTexture.Texture, FALSE);
                break;
        case TGSI_OPCODE_TXP:
                emit_tex(pc, dst, mask, src[0], unit,
-                        inst->InstructionExtTexture.Texture, TRUE);
+                        inst->InstructionTexture.Texture, TRUE);
                break;
        case TGSI_OPCODE_TRUNC:
                for (c = 0; c < 4; c++) {
index 589f1984ee32f7a033761e5d50751ed3231705de..25a634e5a249d5e5b9ff7379f9a5c6d720fa33be 100644 (file)
@@ -208,11 +208,11 @@ static void transform_srcreg(
     dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 1) << 3;
     dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 2) << 6;
     dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 3) << 9;
-    dst->Abs = src->SrcRegisterExtMod.Absolute;
+    dst->Abs = src->SrcRegister.Absolute;
     dst->Negate = src->SrcRegister.Negate ? RC_MASK_XYZW : 0;
 }
 
-static void transform_texture(struct rc_instruction * dst, struct tgsi_instruction_ext_texture src)
+static void transform_texture(struct rc_instruction * dst, struct tgsi_instruction_texture src)
 {
     switch(src.Texture) {
         case TGSI_TEXTURE_1D:
@@ -268,7 +268,8 @@ static void transform_instruction(struct tgsi_to_rc * ttr, struct tgsi_full_inst
     }
 
     /* Texturing. */
-    transform_texture(dst, src->InstructionExtTexture);
+    if (src->Instruction.Texture)
+       transform_texture(dst, src->InstructionTexture);
 }
 
 static void handle_immediate(struct tgsi_to_rc * ttr, struct tgsi_full_immediate * imm)