[Mesa-dev] [PATCH 10/18] i965/cs: Add brw_cs_prog_data, brw_cs_prog_key and brw_context::cs.

Kristian Høgsberg krh at bitplanet.net
Mon Apr 13 17:42:32 PDT 2015


On Sat, Mar 14, 2015 at 9:54 PM, Jordan Justen
<jordan.l.justen at intel.com> wrote:
> From: Paul Berry <stereotype441 at gmail.com>

Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>

> jordan.l.justen at intel.com:
>  * Added brw_cs_prog_key structure
>  * Added brw_cs_prog_data::dispatch_grf_start_reg_16
>  * Added brw_cs_prog_data::no_8
>  * Added brw_cs_prog_data::local_size
>  * Added brw_cs_prog_data::simd_size
>
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
>  src/mesa/drivers/dri/i965/brw_context.h | 17 ++++++++++++
>  src/mesa/drivers/dri/i965/brw_cs.h      | 46 +++++++++++++++++++++++++++++++++
>  2 files changed, 63 insertions(+)
>  create mode 100644 src/mesa/drivers/dri/i965/brw_cs.h
>
> diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
> index 2d4a00f..bfcd911 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.h
> +++ b/src/mesa/drivers/dri/i965/brw_context.h
> @@ -148,6 +148,7 @@ struct brw_vs_prog_key;
>  struct brw_vue_prog_key;
>  struct brw_wm_prog_key;
>  struct brw_wm_prog_data;
> +struct brw_cs_prog_data;
>
>  enum brw_pipeline {
>     BRW_RENDER_PIPELINE,
> @@ -427,6 +428,18 @@ struct brw_wm_prog_data {
>     int urb_setup[VARYING_SLOT_MAX];
>  };
>
> +/* Note: brw_cs_prog_data_compare() must be updated when adding fields to this
> + * struct!
> + */
> +struct brw_cs_prog_data {
> +   struct brw_stage_prog_data base;
> +
> +   GLuint dispatch_grf_start_reg_16;
> +   bool no_8;
> +   unsigned local_size[3];
> +   unsigned simd_size;
> +};
> +
>  /**
>   * Enum representing the i965-specific vertex results that don't correspond
>   * exactly to any element of gl_varying_slot.  The values of this enum are
> @@ -1347,6 +1360,10 @@ struct brw_context
>        uint32_t fast_clear_op;
>     } wm;
>
> +   struct {
> +      struct brw_stage_state base;
> +      struct brw_cs_prog_data *prog_data;
> +   } cs;
>
>     struct {
>        uint32_t state_offset;
> diff --git a/src/mesa/drivers/dri/i965/brw_cs.h b/src/mesa/drivers/dri/i965/brw_cs.h
> new file mode 100644
> index 0000000..0e9e65a
> --- /dev/null
> +++ b/src/mesa/drivers/dri/i965/brw_cs.h
> @@ -0,0 +1,46 @@
> +/*
> + * 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.
> + */
> +
> +
> +#ifndef BRW_CS_H
> +#define BRW_CS_H
> +
> +#include "brw_program.h"
> +
> +struct brw_cs_prog_key {
> +   GLuint program_string_id:32;
> +   struct brw_sampler_prog_key_data tex;
> +};
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +void
> +brw_upload_cs_prog(struct brw_context *brw);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* BRW_CS_H */
> --
> 2.1.4
>
> _______________________________________________
> 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