mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-16 05:28:14 +02:00
i965: Fix polygon stipple offset state flagging.
_NEW_WINDOW_POS wasn't a real Mesa state flag, but we were missing _NEW_BUFFERS to update the stipple offset when FBO binding or window size changed, and _NEW_POLYGON to update when stippling gets enabled. Fixes oglconform's tristrip test. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> (cherry picked from commit d598851d401f7f34d623c9cfbd85d7f5faccd7c2)
This commit is contained in:
parent
0d31b130bb
commit
aaadd4c111
1 changed files with 6 additions and 4 deletions
|
|
@ -498,6 +498,7 @@ static void upload_polygon_stipple_offset(struct brw_context *brw)
|
|||
struct intel_context *intel = &brw->intel;
|
||||
struct gl_context *ctx = &brw->intel.ctx;
|
||||
|
||||
/* _NEW_POLYGON */
|
||||
if (!ctx->Polygon.StippleFlag)
|
||||
return;
|
||||
|
||||
|
|
@ -507,7 +508,9 @@ static void upload_polygon_stipple_offset(struct brw_context *brw)
|
|||
BEGIN_BATCH(2);
|
||||
OUT_BATCH(_3DSTATE_POLY_STIPPLE_OFFSET << 16 | (2-2));
|
||||
|
||||
/* If we're drawing to a system window (ctx->DrawBuffer->Name == 0),
|
||||
/* _NEW_BUFFERS
|
||||
*
|
||||
* If we're drawing to a system window (ctx->DrawBuffer->Name == 0),
|
||||
* we have to invert the Y axis in order to match the OpenGL
|
||||
* pixel coordinate system, and our offset must be matched
|
||||
* to the window position. If we're drawing to a FBO
|
||||
|
|
@ -522,11 +525,10 @@ static void upload_polygon_stipple_offset(struct brw_context *brw)
|
|||
CACHED_BATCH();
|
||||
}
|
||||
|
||||
#define _NEW_WINDOW_POS 0x40000000
|
||||
|
||||
const struct brw_tracked_state brw_polygon_stipple_offset = {
|
||||
.dirty = {
|
||||
.mesa = _NEW_WINDOW_POS | _NEW_POLYGONSTIPPLE,
|
||||
.mesa = (_NEW_BUFFERS |
|
||||
_NEW_POLYGON),
|
||||
.brw = BRW_NEW_CONTEXT,
|
||||
.cache = 0
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue