Bug 87619

Summary: Changes to state such as render targets change fragment shader without marking it dirty.
Product: Mesa Reporter: Mike Stroyan <mike>
Component: Drivers/DRI/i965Assignee: Kenneth Graunke <kenneth>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: eero.t.tamminen
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Patch to set dirty bit when changing fragment shader.

Description Mike Stroyan 2014-12-22 23:11:53 UTC
Created attachment 111194 [details]
Patch to set dirty bit when changing fragment shader.

A fragment program can change because of Non-Orthogonal-State changes.
brw_update_texture_surfaces needs to run because of changed surface offsets.
Set BRW_NEW_FRAGMENT_PROGRAM dirty bit in brw_upload_wm_prog to signal that.
This defect is demonstrated by the new fbo/fbo-mrt-new-bind.c test that I sent
to the piglit mailing list.
Comment 1 Kenneth Graunke 2014-12-28 02:10:46 UTC
commit 4616b2ef850cb2b3e33005809ed77a697afc4186
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Mon Dec 22 18:43:08 2014 -0800

    i965: Add missing BRW_NEW_*_PROG_DATA to texture/renderbuffer atoms.
    
    This was probably missed when moving from a fixed binding table layout
    to a dynamic one that changes based on the shader.
    
    Fixes newly proposed Piglit test fbo-mrt-new-bind.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87619
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
    Reviewed-by: Mike Stroyan <mike@LunarG.com>
    Cc: "10.4 10.3" <mesa-stable@lists.freedesktop.org>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.