void si_init_context_texture_functions(struct r600_common_context *rctx);
/* r600_viewport.c */
-void si_apply_scissor_bug_workaround(struct r600_common_context *rctx,
- struct pipe_scissor_state *scissor);
void si_viewport_set_rast_deps(struct r600_common_context *rctx,
bool scissor_enable, bool clip_halfz);
void si_update_vs_writes_viewport_index(struct r600_common_context *rctx,
out->maxy = MAX2(out->maxy, in->maxy);
}
-void si_apply_scissor_bug_workaround(struct r600_common_context *rctx,
- struct pipe_scissor_state *scissor)
-{
- if (rctx->chip_class == EVERGREEN || rctx->chip_class == CAYMAN) {
- if (scissor->maxx == 0)
- scissor->minx = 1;
- if (scissor->maxy == 0)
- scissor->miny = 1;
-
- if (rctx->chip_class == CAYMAN &&
- scissor->maxx == 1 && scissor->maxy == 1)
- scissor->maxx = 2;
- }
-}
-
static void r600_emit_one_scissor(struct r600_common_context *rctx,
struct radeon_winsys_cs *cs,
struct r600_signed_scissor *vp_scissor,
if (scissor)
r600_clip_scissor(&final, scissor);
- si_apply_scissor_bug_workaround(rctx, &final);
-
radeon_emit(cs, S_028250_TL_X(final.minx) |
S_028250_TL_Y(final.miny) |
S_028250_WINDOW_OFFSET_DISABLE(1));