diff options
author | Kenneth Graunke <[email protected]> | 2011-06-19 01:47:50 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2011-08-23 11:18:25 -0700 |
commit | ecf8963754489abfb5097c130a9bcd4cdb76b6bd (patch) | |
tree | b0325c95734aa4b633ba68a99bb53a5bfecceb16 /src/mesa/program | |
parent | b6bdcf2a908889532ef6d5eb643791176dffcb9d (diff) |
i965/fs: Implement textureSize (TXS) on Gen5+.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/mesa/program')
-rw-r--r-- | src/mesa/program/ir_to_mesa.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index b222005d1a9..e7609df19ee 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -2104,7 +2104,10 @@ ir_to_mesa_visitor::visit(ir_texture *ir) ir_to_mesa_instruction *inst = NULL; prog_opcode opcode = OPCODE_NOP; - ir->coordinate->accept(this); + if (ir->op == ir_txs) + this->result = src_reg_for_float(0.0); + else + ir->coordinate->accept(this); /* Put our coords in a temp. We'll need to modify them for shadow, * projection, or LOD, so the only case we'd use it as is is if @@ -2128,6 +2131,7 @@ ir_to_mesa_visitor::visit(ir_texture *ir) switch (ir->op) { case ir_tex: + case ir_txs: opcode = OPCODE_TEX; break; case ir_txb: @@ -2148,7 +2152,6 @@ ir_to_mesa_visitor::visit(ir_texture *ir) dy = this->result; break; case ir_txf: - case ir_txs: assert(!"GLSL 1.30 features unsupported"); break; } |