mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
Revert "i965: Avoid unnecessary recompiles for shaders that don't use dFdy()."
This patch depends on some other patches that were not picked over. As
a result, this patch causes a bunch of piglit regressions on SNB.
This reverts commit 55d23cfc56.
This commit is contained in:
parent
59997d619d
commit
454841bedd
4 changed files with 14 additions and 10 deletions
|
|
@ -1884,13 +1884,19 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||
struct brw_context *brw = brw_context(ctx);
|
||||
struct brw_wm_prog_key key;
|
||||
|
||||
/* As a temporary measure we assume that all programs use dFdy() (and hence
|
||||
* need to be compiled differently depending on whether we're rendering to
|
||||
* an FBO). FIXME: set this bool correctly based on the contents of the
|
||||
* program.
|
||||
*/
|
||||
bool program_uses_dfdy = true;
|
||||
|
||||
if (!prog->_LinkedShaders[MESA_SHADER_FRAGMENT])
|
||||
return true;
|
||||
|
||||
struct gl_fragment_program *fp = (struct gl_fragment_program *)
|
||||
prog->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program;
|
||||
struct brw_fragment_program *bfp = brw_fragment_program(fp);
|
||||
bool program_uses_dfdy = fp->UsesDFdy;
|
||||
|
||||
memset(&key, 0, sizeof(key));
|
||||
|
||||
|
|
|
|||
|
|
@ -921,10 +921,6 @@ fs_visitor::generate_code()
|
|||
generate_ddx(inst, dst, src[0]);
|
||||
break;
|
||||
case FS_OPCODE_DDY:
|
||||
/* Make sure fp->UsesDFdy flag got set (otherwise there's no
|
||||
* guarantee that c->key.render_to_fbo is set).
|
||||
*/
|
||||
assert(fp->UsesDFdy);
|
||||
generate_ddy(inst, dst, src[0], c->key.render_to_fbo);
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -417,7 +417,13 @@ static void brw_wm_populate_key( struct brw_context *brw,
|
|||
GLuint lookup = 0;
|
||||
GLuint line_aa;
|
||||
GLuint i;
|
||||
bool program_uses_dfdy = fp->program.UsesDFdy;
|
||||
|
||||
/* As a temporary measure we assume that all programs use dFdy() (and hence
|
||||
* need to be compiled differently depending on whether we're rendering to
|
||||
* an FBO). FIXME: set this bool correctly based on the contents of the
|
||||
* program.
|
||||
*/
|
||||
bool program_uses_dfdy = true;
|
||||
|
||||
memset(key, 0, sizeof(*key));
|
||||
|
||||
|
|
|
|||
|
|
@ -1750,10 +1750,6 @@ void brw_wm_emit( struct brw_wm_compile *c )
|
|||
break;
|
||||
|
||||
case OPCODE_DDY:
|
||||
/* Make sure fp->program.UsesDFdy flag got set (otherwise there's no
|
||||
* guarantee that c->key.render_to_fbo is set).
|
||||
*/
|
||||
assert(c->fp->program.UsesDFdy);
|
||||
emit_ddxy(p, dst, dst_flags, false, args[0], c->key.render_to_fbo);
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue