summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_tcs.c
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2015-12-17 21:02:40 -0800
committerKenneth Graunke <kenneth@whitecape.org>2015-12-22 17:22:00 -0800
commitf46dbfaed914e0e3463f3a28fc877695cd7e7834 (patch)
treea59147c886d7551acbc630cab03cd7e3c25b8424 /src/mesa/drivers/dri/i965/brw_tcs.c
parent8498cb4a45e8ed53a2ee2b35d3c2cbb9963e1756 (diff)
downloadexternal_mesa3d-f46dbfaed914e0e3463f3a28fc877695cd7e7834.zip
external_mesa3d-f46dbfaed914e0e3463f3a28fc877695cd7e7834.tar.gz
external_mesa3d-f46dbfaed914e0e3463f3a28fc877695cd7e7834.tar.bz2
i965: Consolidate BRW_NEW_TESS_{CTRL,EVAL}_PROGRAM flags.
For several reasons, I don't think it's particularly useful to have separate flags: 1. Most of the time, tessellation shaders are paired, so both will be replaced at the same time. 2. The data layout is tightly coupled. Both need to agree on the number of per-patch slots in the VUE map. Even adding extra TCS outputs that aren't read by the TES will trigger the need for recompiles. 3. The TCS is optional from an API perspective, but required by the hardware whenever tessellation is enabled. So, atoms that deal with the TCS must check brw->tess_eval_program (BRW_NEW_TESS_EVAL_PROGRAM?) rather than brw->tess_ctrl_program to tell whether tessellation is enabled. So, not only is it unlikely to be useful, it's a bit confusing to get right. Simply using one flag for both simplifies this. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_tcs.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_tcs.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_tcs.c b/src/mesa/drivers/dri/i965/brw_tcs.c
index 037a2da..aa0e87a 100644
--- a/src/mesa/drivers/dri/i965/brw_tcs.c
+++ b/src/mesa/drivers/dri/i965/brw_tcs.c
@@ -184,10 +184,9 @@ brw_upload_tcs_prog(struct brw_context *brw)
struct gl_shader_program **current = ctx->_Shader->CurrentProgram;
struct brw_stage_state *stage_state = &brw->tcs.base;
struct brw_tcs_prog_key key;
- /* BRW_NEW_TESS_CTRL_PROGRAM */
+ /* BRW_NEW_TESS_PROGRAMS */
struct brw_tess_ctrl_program *tcp =
(struct brw_tess_ctrl_program *) brw->tess_ctrl_program;
- /* BRW_NEW_TESS_EVAL_PROGRAM */
struct brw_tess_eval_program *tep =
(struct brw_tess_eval_program *) brw->tess_eval_program;
assert(tcp && tep);
@@ -195,8 +194,7 @@ brw_upload_tcs_prog(struct brw_context *brw)
if (!brw_state_dirty(brw,
_NEW_TEXTURE,
BRW_NEW_PATCH_PRIMITIVE |
- BRW_NEW_TESS_CTRL_PROGRAM |
- BRW_NEW_TESS_EVAL_PROGRAM))
+ BRW_NEW_TESS_PROGRAMS))
return;
struct gl_program *prog = &tcp->program.Base;