On Tue, Nov 17, 2015 at 11:20 AM, Kenneth Graunke <kenn...@whitecape.org> wrote: > For now, this just splits the existing code to disable these stages into > separate atoms/files. We can then replace it with real code.
Nice, bye bye gen7/8_disable.c. This commit is a milestone. Reviewed-by: Kristian Høgsberg <k...@bitplanet.net> > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/Makefile.sources | 6 +- > src/mesa/drivers/dri/i965/brw_state.h | 6 +- > src/mesa/drivers/dri/i965/brw_state_upload.c | 7 +- > src/mesa/drivers/dri/i965/gen7_disable.c | 98 > ---------------------------- > src/mesa/drivers/dri/i965/gen7_ds_state.c | 64 ++++++++++++++++++ > src/mesa/drivers/dri/i965/gen7_hs_state.c | 65 ++++++++++++++++++ > src/mesa/drivers/dri/i965/gen7_te_state.c | 47 +++++++++++++ > src/mesa/drivers/dri/i965/gen8_disable.c | 67 ------------------- > src/mesa/drivers/dri/i965/gen8_ds_state.c | 54 +++++++++++++++ > src/mesa/drivers/dri/i965/gen8_hs_state.c | 71 ++++++++++++++++++++ > 10 files changed, 317 insertions(+), 168 deletions(-) > delete mode 100644 src/mesa/drivers/dri/i965/gen7_disable.c > create mode 100644 src/mesa/drivers/dri/i965/gen7_ds_state.c > create mode 100644 src/mesa/drivers/dri/i965/gen7_hs_state.c > create mode 100644 src/mesa/drivers/dri/i965/gen7_te_state.c > create mode 100644 src/mesa/drivers/dri/i965/gen8_ds_state.c > create mode 100644 src/mesa/drivers/dri/i965/gen8_hs_state.c > > diff --git a/src/mesa/drivers/dri/i965/Makefile.sources > b/src/mesa/drivers/dri/i965/Makefile.sources > index 5a88d66..e85c793 100644 > --- a/src/mesa/drivers/dri/i965/Makefile.sources > +++ b/src/mesa/drivers/dri/i965/Makefile.sources > @@ -182,11 +182,13 @@ i965_FILES = \ > gen7_blorp.cpp \ > gen7_blorp.h \ > gen7_cs_state.c \ > - gen7_disable.c \ > + gen7_ds_state.c \ > gen7_gs_state.c \ > + gen7_hs_state.c \ > gen7_misc_state.c \ > gen7_sf_state.c \ > gen7_sol_state.c \ > + gen7_te_state.c \ > gen7_urb.c \ > gen7_viewport_state.c \ > gen7_vs_state.c \ > @@ -196,7 +198,9 @@ i965_FILES = \ > gen8_depth_state.c \ > gen8_disable.c \ > gen8_draw_upload.c \ > + gen8_ds_state.c \ > gen8_gs_state.c \ > + gen8_hs_state.c \ > gen8_misc_state.c \ > gen8_multisample_state.c \ > gen8_ps_state.c \ > diff --git a/src/mesa/drivers/dri/i965/brw_state.h > b/src/mesa/drivers/dri/i965/brw_state.h > index 94734ba..74f513a 100644 > --- a/src/mesa/drivers/dri/i965/brw_state.h > +++ b/src/mesa/drivers/dri/i965/brw_state.h > @@ -127,14 +127,16 @@ extern const struct brw_tracked_state > gen6_wm_push_constants; > extern const struct brw_tracked_state gen6_wm_state; > extern const struct brw_tracked_state gen7_depthbuffer; > extern const struct brw_tracked_state gen7_clip_state; > -extern const struct brw_tracked_state gen7_disable_stages; > +extern const struct brw_tracked_state gen7_ds_state; > extern const struct brw_tracked_state gen7_gs_state; > +extern const struct brw_tracked_state gen7_hs_state; > extern const struct brw_tracked_state gen7_ps_state; > extern const struct brw_tracked_state gen7_push_constant_space; > extern const struct brw_tracked_state gen7_sbe_state; > extern const struct brw_tracked_state gen7_sf_clip_viewport; > extern const struct brw_tracked_state gen7_sf_state; > extern const struct brw_tracked_state gen7_sol_state; > +extern const struct brw_tracked_state gen7_te_state; > extern const struct brw_tracked_state gen7_urb; > extern const struct brw_tracked_state gen7_vs_state; > extern const struct brw_tracked_state gen7_wm_state; > @@ -142,7 +144,9 @@ extern const struct brw_tracked_state > gen7_hw_binding_tables; > extern const struct brw_tracked_state haswell_cut_index; > extern const struct brw_tracked_state gen8_blend_state; > extern const struct brw_tracked_state gen8_disable_stages; > +extern const struct brw_tracked_state gen8_ds_state; > extern const struct brw_tracked_state gen8_gs_state; > +extern const struct brw_tracked_state gen8_hs_state; > extern const struct brw_tracked_state gen8_index_buffer; > extern const struct brw_tracked_state gen8_multisample_state; > extern const struct brw_tracked_state gen8_pma_fix; > diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c > b/src/mesa/drivers/dri/i965/brw_state_upload.c > index aae51a0..96c247a 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_upload.c > +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c > @@ -225,8 +225,10 @@ static const struct brw_tracked_state > *gen7_render_atoms[] = > &brw_gs_samplers, > &gen6_multisample_state, > > - &gen7_disable_stages, > &gen7_vs_state, > + &gen7_hs_state, > + &gen7_te_state, > + &gen7_ds_state, > &gen7_gs_state, > &gen7_sol_state, > &gen7_clip_state, > @@ -315,6 +317,9 @@ static const struct brw_tracked_state > *gen8_render_atoms[] = > > &gen8_disable_stages, > &gen8_vs_state, > + &gen8_hs_state, > + &gen7_te_state, > + &gen8_ds_state, > &gen8_gs_state, > &gen8_sol_state, > &gen6_clip_state, > diff --git a/src/mesa/drivers/dri/i965/gen7_disable.c > b/src/mesa/drivers/dri/i965/gen7_disable.c > deleted file mode 100644 > index bb50969..0000000 > --- a/src/mesa/drivers/dri/i965/gen7_disable.c > +++ /dev/null > @@ -1,98 +0,0 @@ > -/* > - * Copyright © 2011 Intel Corporation > - * > - * Permission is hereby granted, free of charge, to any person obtaining a > - * copy of this software and associated documentation files (the "Software"), > - * to deal in the Software without restriction, including without limitation > - * the rights to use, copy, modify, merge, publish, distribute, sublicense, > - * and/or sell copies of the Software, and to permit persons to whom the > - * Software is furnished to do so, subject to the following conditions: > - * > - * The above copyright notice and this permission notice (including the next > - * paragraph) shall be included in all copies or substantial portions of the > - * Software. > - * > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > DEALINGS > - * IN THE SOFTWARE. > - */ > - > -#include "brw_context.h" > -#include "brw_state.h" > -#include "brw_defines.h" > -#include "intel_batchbuffer.h" > - > -static void > -disable_stages(struct brw_context *brw) > -{ > - /* Disable the HS Unit */ > - BEGIN_BATCH(7); > - OUT_BATCH(_3DSTATE_CONSTANT_HS << 16 | (7 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - BEGIN_BATCH(7); > - OUT_BATCH(_3DSTATE_HS << 16 | (7 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - BEGIN_BATCH(2); > - OUT_BATCH(_3DSTATE_BINDING_TABLE_POINTERS_HS << 16 | (2 - 2)); > - OUT_BATCH(brw->hw_bt_pool.next_offset); > - ADVANCE_BATCH(); > - > - /* Disable the TE */ > - BEGIN_BATCH(4); > - OUT_BATCH(_3DSTATE_TE << 16 | (4 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - /* Disable the DS Unit */ > - BEGIN_BATCH(7); > - OUT_BATCH(_3DSTATE_CONSTANT_DS << 16 | (7 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - BEGIN_BATCH(6); > - OUT_BATCH(_3DSTATE_DS << 16 | (6 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - BEGIN_BATCH(2); > - OUT_BATCH(_3DSTATE_BINDING_TABLE_POINTERS_DS << 16 | (2 - 2)); > - OUT_BATCH(brw->hw_bt_pool.next_offset); > - ADVANCE_BATCH(); > -} > - > -const struct brw_tracked_state gen7_disable_stages = { > - .dirty = { > - .mesa = 0, > - .brw = BRW_NEW_CONTEXT, > - }, > - .emit = disable_stages, > -}; > diff --git a/src/mesa/drivers/dri/i965/gen7_ds_state.c > b/src/mesa/drivers/dri/i965/gen7_ds_state.c > new file mode 100644 > index 0000000..79993b6 > --- /dev/null > +++ b/src/mesa/drivers/dri/i965/gen7_ds_state.c > @@ -0,0 +1,64 @@ > +/* > + * Copyright © 2014 Intel Corporation > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice (including the next > + * paragraph) shall be included in all copies or substantial portions of the > + * Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > + * DEALINGS IN THE SOFTWARE. > + */ > + > +#include "brw_context.h" > +#include "brw_state.h" > +#include "brw_defines.h" > +#include "intel_batchbuffer.h" > + > +static void > +gen7_upload_ds_state(struct brw_context *brw) > +{ > + /* Disable the DS Unit */ > + BEGIN_BATCH(7); > + OUT_BATCH(_3DSTATE_CONSTANT_DS << 16 | (7 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > + > + BEGIN_BATCH(6); > + OUT_BATCH(_3DSTATE_DS << 16 | (6 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > + > + BEGIN_BATCH(2); > + OUT_BATCH(_3DSTATE_BINDING_TABLE_POINTERS_DS << 16 | (2 - 2)); > + OUT_BATCH(brw->hw_bt_pool.next_offset); > + ADVANCE_BATCH(); > +} > + > +const struct brw_tracked_state gen7_ds_state = { > + .dirty = { > + .mesa = 0, > + .brw = BRW_NEW_CONTEXT, > + }, > + .emit = gen7_upload_ds_state, > +}; > diff --git a/src/mesa/drivers/dri/i965/gen7_hs_state.c > b/src/mesa/drivers/dri/i965/gen7_hs_state.c > new file mode 100644 > index 0000000..ae55f34 > --- /dev/null > +++ b/src/mesa/drivers/dri/i965/gen7_hs_state.c > @@ -0,0 +1,65 @@ > +/* > + * Copyright © 2014 Intel Corporation > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice (including the next > + * paragraph) shall be included in all copies or substantial portions of the > + * Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > + * DEALINGS IN THE SOFTWARE. > + */ > + > +#include "brw_context.h" > +#include "brw_state.h" > +#include "brw_defines.h" > +#include "intel_batchbuffer.h" > + > +static void > +gen7_upload_hs_state(struct brw_context *brw) > +{ > + /* Disable the HS Unit */ > + BEGIN_BATCH(7); > + OUT_BATCH(_3DSTATE_CONSTANT_HS << 16 | (7 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > + > + BEGIN_BATCH(7); > + OUT_BATCH(_3DSTATE_HS << 16 | (7 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > + > + BEGIN_BATCH(2); > + OUT_BATCH(_3DSTATE_BINDING_TABLE_POINTERS_HS << 16 | (2 - 2)); > + OUT_BATCH(brw->hw_bt_pool.next_offset); > + ADVANCE_BATCH(); > +} > + > +const struct brw_tracked_state gen7_hs_state = { > + .dirty = { > + .mesa = 0, > + .brw = BRW_NEW_CONTEXT, > + }, > + .emit = gen7_upload_hs_state, > +}; > diff --git a/src/mesa/drivers/dri/i965/gen7_te_state.c > b/src/mesa/drivers/dri/i965/gen7_te_state.c > new file mode 100644 > index 0000000..95a5e98 > --- /dev/null > +++ b/src/mesa/drivers/dri/i965/gen7_te_state.c > @@ -0,0 +1,47 @@ > +/* > + * Copyright © 2014 Intel Corporation > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice (including the next > + * paragraph) shall be included in all copies or substantial portions of the > + * Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > + * DEALINGS IN THE SOFTWARE. > + */ > + > +#include "brw_context.h" > +#include "brw_state.h" > +#include "brw_defines.h" > +#include "intel_batchbuffer.h" > + > +static void > +upload_te_state(struct brw_context *brw) > +{ > + /* Disable the TE */ > + BEGIN_BATCH(4); > + OUT_BATCH(_3DSTATE_TE << 16 | (4 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > +} > + > +const struct brw_tracked_state gen7_te_state = { > + .dirty = { > + .mesa = 0, > + .brw = BRW_NEW_CONTEXT, > + }, > + .emit = upload_te_state, > +}; > diff --git a/src/mesa/drivers/dri/i965/gen8_disable.c > b/src/mesa/drivers/dri/i965/gen8_disable.c > index 32508e3..6e0dc32 100644 > --- a/src/mesa/drivers/dri/i965/gen8_disable.c > +++ b/src/mesa/drivers/dri/i965/gen8_disable.c > @@ -37,73 +37,6 @@ disable_stages(struct brw_context *brw) > OUT_BATCH(0); > ADVANCE_BATCH(); > > - /* Disable the HS Unit */ > - BEGIN_BATCH(11); > - OUT_BATCH(_3DSTATE_CONSTANT_HS << 16 | (11 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - BEGIN_BATCH(9); > - OUT_BATCH(_3DSTATE_HS << 16 | (9 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - BEGIN_BATCH(2); > - OUT_BATCH(_3DSTATE_BINDING_TABLE_POINTERS_HS << 16 | (2 - 2)); > - OUT_BATCH(brw->hw_bt_pool.next_offset); > - ADVANCE_BATCH(); > - > - /* Disable the TE */ > - BEGIN_BATCH(4); > - OUT_BATCH(_3DSTATE_TE << 16 | (4 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - /* Disable the DS Unit */ > - BEGIN_BATCH(11); > - OUT_BATCH(_3DSTATE_CONSTANT_DS << 16 | (11 - 2)); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - int ds_pkt_len = brw->gen >= 9 ? 11 : 9; > - BEGIN_BATCH(ds_pkt_len); > - OUT_BATCH(_3DSTATE_DS << 16 | (ds_pkt_len - 2)); > - for (int i = 0; i < ds_pkt_len - 1; i++) > - OUT_BATCH(0); > - ADVANCE_BATCH(); > - > - BEGIN_BATCH(2); > - OUT_BATCH(_3DSTATE_BINDING_TABLE_POINTERS_DS << 16 | (2 - 2)); > - OUT_BATCH(brw->hw_bt_pool.next_offset); > - ADVANCE_BATCH(); > - > BEGIN_BATCH(2); > OUT_BATCH(_3DSTATE_WM_CHROMAKEY << 16 | (2 - 2)); > OUT_BATCH(0); > diff --git a/src/mesa/drivers/dri/i965/gen8_ds_state.c > b/src/mesa/drivers/dri/i965/gen8_ds_state.c > new file mode 100644 > index 0000000..31f1e27 > --- /dev/null > +++ b/src/mesa/drivers/dri/i965/gen8_ds_state.c > @@ -0,0 +1,54 @@ > +/* > + * Copyright © 2014 Intel Corporation > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice (including the next > + * paragraph) shall be included in all copies or substantial portions of the > + * Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > + * DEALINGS IN THE SOFTWARE. > + */ > + > +#include "brw_context.h" > +#include "brw_state.h" > +#include "brw_defines.h" > +#include "intel_batchbuffer.h" > + > +static void > +gen8_upload_ds_state(struct brw_context *brw) > +{ > + /* Disable the DS Unit */ > + BEGIN_BATCH(11); > + OUT_BATCH(_3DSTATE_CONSTANT_DS << 16 | (11 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > +} > + > +const struct brw_tracked_state gen8_ds_state = { > + .dirty = { > + .mesa = 0, > + .brw = BRW_NEW_CONTEXT, > + }, > + .emit = gen8_upload_ds_state, > +}; > diff --git a/src/mesa/drivers/dri/i965/gen8_hs_state.c > b/src/mesa/drivers/dri/i965/gen8_hs_state.c > new file mode 100644 > index 0000000..13f70ef > --- /dev/null > +++ b/src/mesa/drivers/dri/i965/gen8_hs_state.c > @@ -0,0 +1,71 @@ > +/* > + * Copyright © 2014 Intel Corporation > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice (including the next > + * paragraph) shall be included in all copies or substantial portions of the > + * Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > + * DEALINGS IN THE SOFTWARE. > + */ > + > +#include "brw_context.h" > +#include "brw_state.h" > +#include "brw_defines.h" > +#include "intel_batchbuffer.h" > + > +static void > +gen8_upload_hs_state(struct brw_context *brw) > +{ > + /* Disable the HS Unit */ > + BEGIN_BATCH(11); > + OUT_BATCH(_3DSTATE_CONSTANT_HS << 16 | (11 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > + > + BEGIN_BATCH(9); > + OUT_BATCH(_3DSTATE_HS << 16 | (9 - 2)); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + OUT_BATCH(0); > + ADVANCE_BATCH(); > + > + BEGIN_BATCH(2); > + OUT_BATCH(_3DSTATE_BINDING_TABLE_POINTERS_HS << 16 | (2 - 2)); > + OUT_BATCH(brw->hw_bt_pool.next_offset); > + ADVANCE_BATCH(); > +} > + > +const struct brw_tracked_state gen8_hs_state = { > + .dirty = { > + .mesa = 0, > + .brw = BRW_NEW_CONTEXT, > + }, > + .emit = gen8_upload_hs_state, > +}; > -- > 2.6.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev