|
|
|
|
|
|
|
|
*/ |
|
|
*/ |
|
|
src = nir_channel(b, src, 2); |
|
|
src = nir_channel(b, src, 2); |
|
|
} |
|
|
} |
|
|
|
|
|
if (c->prog->Target == GL_VERTEX_PROGRAM_ARB && |
|
|
|
|
|
var->data.location == VARYING_SLOT_FOGC) { |
|
|
|
|
|
/* result.fogcoord is a single component value */ |
|
|
|
|
|
src = nir_channel(b, src, 0); |
|
|
|
|
|
} |
|
|
unsigned num_components = glsl_get_vector_elements(var->type); |
|
|
unsigned num_components = glsl_get_vector_elements(var->type); |
|
|
nir_store_var(b, var, src, (1 << num_components) - 1); |
|
|
nir_store_var(b, var, src, (1 << num_components) - 1); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
reg->num_components = 4; |
|
|
reg->num_components = 4; |
|
|
|
|
|
|
|
|
nir_variable *var = rzalloc(shader, nir_variable); |
|
|
nir_variable *var = rzalloc(shader, nir_variable); |
|
|
if (c->prog->Target == GL_FRAGMENT_PROGRAM_ARB && i == FRAG_RESULT_DEPTH) |
|
|
|
|
|
|
|
|
if ((c->prog->Target == GL_FRAGMENT_PROGRAM_ARB && i == FRAG_RESULT_DEPTH) || |
|
|
|
|
|
(c->prog->Target == GL_VERTEX_PROGRAM_ARB && i == VARYING_SLOT_FOGC)) |
|
|
var->type = glsl_float_type(); |
|
|
var->type = glsl_float_type(); |
|
|
else |
|
|
else |
|
|
var->type = glsl_vec4_type(); |
|
|
var->type = glsl_vec4_type(); |