OSDN Git Service

st/mesa: set result writemask based on ir type
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 4 Mar 2017 18:52:48 +0000 (13:52 -0500)
committerAndres Gomez <agomez@igalia.com>
Wed, 29 Mar 2017 16:13:17 +0000 (19:13 +0300)
This prevents textureQueryLevels, which maps as LODQ, from ending up
with a xyzw writemask, which is illegal.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100061
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit dab88e9af7a35ebcdd0fc87df97f4b13e908552a)

src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index fcf93f1..f4d2721 100644 (file)
@@ -3986,6 +3986,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
     */
    result_src = get_temp(ir->type);
    result_dst = st_dst_reg(result_src);
+   result_dst.writemask = (1 << ir->type->vector_elements) - 1;
 
    switch (ir->op) {
    case ir_tex: