mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 11:40:10 +01:00
Revert "i965: Delete pre-DRI2.3 viewport hacks."
This reverts commit c9db037dc9.
Eric believes that the viewport hacks are still necessary for EGL;
invalidate events aren't hooked up properly.
This commit caused a regression where EFL applications wouldn't show
anything other than window decorations; GLBenchmark also showed issues.
The revert had conflicts due to the intel_context/brw_context merge.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66606
Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
a8c8c5f8d2
commit
0e9549e2bd
3 changed files with 25 additions and 1 deletions
|
|
@ -1239,6 +1239,8 @@ struct brw_context
|
|||
|
||||
__DRIcontext *driContext;
|
||||
struct intel_screen *intelScreen;
|
||||
void (*saved_viewport)(struct gl_context *ctx,
|
||||
GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
};
|
||||
|
||||
/*======================================================================
|
||||
|
|
|
|||
|
|
@ -288,6 +288,21 @@ intel_prepare_render(struct brw_context *brw)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
intel_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
|
||||
{
|
||||
struct brw_context *brw = brw_context(ctx);
|
||||
__DRIcontext *driContext = brw->driContext;
|
||||
|
||||
if (brw->saved_viewport)
|
||||
brw->saved_viewport(ctx, x, y, w, h);
|
||||
|
||||
if (_mesa_is_winsys_fbo(ctx->DrawBuffer)) {
|
||||
dri2InvalidateDrawable(driContext->driDrawablePriv);
|
||||
dri2InvalidateDrawable(driContext->driReadablePriv);
|
||||
}
|
||||
}
|
||||
|
||||
static const struct dri_debug_control debug_control[] = {
|
||||
{ "tex", DEBUG_TEXTURE},
|
||||
{ "state", DEBUG_STATE},
|
||||
|
|
@ -454,6 +469,12 @@ intelInitContext(struct brw_context *brw,
|
|||
dri_ctx_error))
|
||||
return false;
|
||||
|
||||
/* Can't rely on invalidate events, fall back to glViewport hack */
|
||||
if (!driContextPriv->driScreenPriv->dri2.useInvalidate) {
|
||||
brw->saved_viewport = functions->Viewport;
|
||||
functions->Viewport = intel_viewport;
|
||||
}
|
||||
|
||||
if (mesaVis == NULL) {
|
||||
memset(&visual, 0, sizeof visual);
|
||||
mesaVis = &visual;
|
||||
|
|
|
|||
|
|
@ -307,7 +307,8 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
|
|||
if (!intelObj)
|
||||
return;
|
||||
|
||||
if (dPriv->lastStamp != dPriv->dri2.stamp)
|
||||
if (dPriv->lastStamp != dPriv->dri2.stamp ||
|
||||
!pDRICtx->driScreenPriv->dri2.useInvalidate)
|
||||
intel_update_renderbuffers(pDRICtx, dPriv);
|
||||
|
||||
rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue