*semantic_name = TGSI_SEMANTIC_TESSINNER;
*semantic_index = 0;
break;
+ case VARYING_SLOT_VIEWPORT_MASK:
+ *semantic_name = TGSI_SEMANTIC_VIEWPORT_MASK;
+ *semantic_index = 0;
+ break;
case VARYING_SLOT_TEX0:
case VARYING_SLOT_TEX1:
struct gl_program *last_prim_shader = new_gp ? new_gp :
new_tep ? new_tep : new_vp;
if (last_prim_shader &&
- last_prim_shader->info.outputs_written & VARYING_BIT_VIEWPORT)
+ last_prim_shader->info.outputs_written & (
+ VARYING_BIT_VIEWPORT | VARYING_BIT_VIEWPORT_MASK))
num_viewports = ctx->Const.MaxViewports;
if (st->state.num_viewports != num_viewports) {
{ o(NV_primitive_restart), PIPE_CAP_PRIMITIVE_RESTART },
{ o(NV_shader_atomic_float), PIPE_CAP_TGSI_ATOMFADD },
{ o(NV_texture_barrier), PIPE_CAP_TEXTURE_BARRIER },
+ { o(NV_viewport_array2), PIPE_CAP_VIEWPORT_MASK },
{ o(NV_viewport_swizzle), PIPE_CAP_VIEWPORT_SWIZZLE },
{ o(NVX_gpu_memory_info), PIPE_CAP_QUERY_MEMORY_INFO },
/* GL_NV_point_sprite is not supported by gallium because we don't
emit_compute_block_size(proginfo, ureg);
}
+ if (program->shader->Program->info.layer_viewport_relative)
+ ureg_property(ureg, TGSI_PROPERTY_LAYER_VIEWPORT_RELATIVE, 1);
+
/* Declare address register.
*/
if (program->num_address_regs > 0) {