glsl_to_tgsi: fix dst register for texturing fetches.
authorDave Airlie <airlied@gmail.com>
Sat, 1 Sep 2012 03:55:38 +0000 (13:55 +1000)
committerDave Airlie <airlied@gmail.com>
Thu, 8 Nov 2012 20:05:54 +0000 (06:05 +1000)
I've no idea why there isn't a piglit that triggers this behaviour,
but while enabling TBOs for softpipe and r600g, I noticed all the
integer tests failed. I tracked it back to the TXF returning a float
when it should be returning an int. This fixed it and I haven't
seen any regressions in a full piglit run on softpipe.

http://bugs.freedesktop.org/55010

NOTE: This is a candidate for the 9.0 branch.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index a70a08bf3b9a352a180c17121edf59249a7553c3..cd47adc0486c25bc8dfd12dfb10bafdf2aa62171 100644 (file)
@@ -2591,7 +2591,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
    /* Storage for our result.  Ideally for an assignment we'd be using
     * the actual storage for the result here, instead.
     */
-   result_src = get_temp(glsl_type::vec4_type);
+   result_src = get_temp(ir->type);
    result_dst = st_dst_reg(result_src);
 
    switch (ir->op) {