[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