diff options
Diffstat (limited to 'mesalib/src/mesa/state_tracker')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_atom_rasterizer.c | 6 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_extensions.c | 6 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 8 |
3 files changed, 15 insertions, 5 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c b/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c index 4aa0b4e2a..2d6ad45ba 100644 --- a/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c +++ b/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c @@ -258,8 +258,8 @@ static void update_raster_state( struct st_context *st ) raster->clamp_fragment_color = ctx->Color._ClampFragmentColor; raster->gl_rasterization_rules = 1; - /* _NEW_TRANSFORM */ - raster->rasterizer_discard = ctx->TransformFeedback.RasterDiscard; + /* _NEW_RASTERIZER_DISCARD */ + raster->rasterizer_discard = ctx->RasterDiscard; cso_set_rasterizer(st->cso_context, raster); } @@ -276,7 +276,7 @@ const struct st_tracked_state st_update_rasterizer = { _NEW_PROGRAM | _NEW_SCISSOR | _NEW_FRAG_CLAMP | - _NEW_TRANSFORM), /* mesa state dependencies*/ + _NEW_RASTERIZER_DISCARD), /* mesa state dependencies*/ ST_NEW_VERTEX_PROGRAM, /* state tracker dependencies */ }, update_raster_state /* update function */ diff --git a/mesalib/src/mesa/state_tracker/st_extensions.c b/mesalib/src/mesa/state_tracker/st_extensions.c index 47a178b8b..dc17d76a5 100644 --- a/mesalib/src/mesa/state_tracker/st_extensions.c +++ b/mesalib/src/mesa/state_tracker/st_extensions.c @@ -263,6 +263,12 @@ void st_init_extensions(struct st_context *st) ctx->Const.GLSLVersion = 120; _mesa_override_glsl_version(st->ctx); + /* Extensions that only depend on the GLSL version: + */ + if (ctx->Const.GLSLVersion >= 130) { + ctx->Extensions.ARB_conservative_depth = GL_TRUE; + } + /* * Extensions that are supported by all Gallium drivers: */ diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index b929806ad..77aa0d17b 100644 --- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -3786,6 +3786,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp, * new visitor. */ foreach_iter(exec_list_iterator, iter, original->instructions) { glsl_to_tgsi_instruction *inst = (glsl_to_tgsi_instruction *)iter.get(); + glsl_to_tgsi_instruction *newinst; st_src_reg src_regs[3]; if (inst->dst.file == PROGRAM_OUTPUT) @@ -3803,7 +3804,8 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp, prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index); } - v->emit(NULL, inst->op, inst->dst, src_regs[0], src_regs[1], src_regs[2]); + newinst = v->emit(NULL, inst->op, inst->dst, src_regs[0], src_regs[1], src_regs[2]); + newinst->tex_target = inst->tex_target; } /* Make modifications to fragment program info. */ @@ -3867,6 +3869,7 @@ get_bitmap_visitor(struct st_fragment_program *fp, * new visitor. */ foreach_iter(exec_list_iterator, iter, original->instructions) { glsl_to_tgsi_instruction *inst = (glsl_to_tgsi_instruction *)iter.get(); + glsl_to_tgsi_instruction *newinst; st_src_reg src_regs[3]; if (inst->dst.file == PROGRAM_OUTPUT) @@ -3878,7 +3881,8 @@ get_bitmap_visitor(struct st_fragment_program *fp, prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index); } - v->emit(NULL, inst->op, inst->dst, src_regs[0], src_regs[1], src_regs[2]); + newinst = v->emit(NULL, inst->op, inst->dst, src_regs[0], src_regs[1], src_regs[2]); + newinst->tex_target = inst->tex_target; } /* Make modifications to fragment program info. */ |