st/mesa: fix handling of vertex array double inputs
authorIlia Mirkin <imirkin@alum.mit.edu>
Sun, 27 Aug 2017 04:41:05 +0000 (00:41 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Mon, 28 Aug 2017 13:07:40 +0000 (09:07 -0400)
The is_double_vertex_input needs to be set for arrays of doubles as
well.

Fixes KHR-GL45.enhanced_layouts.varying_array_locations

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 9f021962e405648a10e667fb146b739496c06760..95c2f85b4ccfae902051e32d7bcd103cfc217146 100644 (file)
@@ -2718,7 +2718,9 @@ glsl_to_tgsi_visitor::visit(ir_dereference_variable *ir)
 
    this->result = st_src_reg(entry->file, entry->index, var->type,
                              entry->component, entry->array_id);
-   if (this->shader->Stage == MESA_SHADER_VERTEX && var->data.mode == ir_var_shader_in && var->type->is_double())
+   if (this->shader->Stage == MESA_SHADER_VERTEX &&
+       var->data.mode == ir_var_shader_in &&
+       var->type->without_array()->is_double())
       this->result.is_double_vertex_input = true;
    if (!native_integers)
       this->result.type = GLSL_TYPE_FLOAT;