[Mesa-dev] [PATCH] i965: Create new files for HS/DS/TE state upload code.
Kristian Høgsberg
krh at bitplanet.net
Tue Nov 17 11:27:38 PST 2015
On Tue, Nov 17, 2015 at 11:20 AM, Kenneth Graunke <kenneth at 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 <krh at bitplanet.net>
> Signed-off-by: Kenneth Graunke <kenneth at 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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list