Bug 87619 - Changes to state such as render targets change fragment shader without marking it dirty.
Summary: Changes to state such as render targets change fragment shader without markin...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Kenneth Graunke
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-12-22 23:11 UTC by Mike Stroyan
Modified: 2014-12-29 14:02 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Patch to set dirty bit when changing fragment shader. (1.29 KB, text/plain)
2014-12-22 23:11 UTC, Mike Stroyan
Details

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.