[Mesa-dev] [PATCH 04/36] i965: Add an isl_device to the brw_context

Pohjolainen, Topi topi.pohjolainen at intel.com
Thu Jun 30 05:28:11 UTC 2016


On Wed, Jun 29, 2016 at 05:37:23PM -0700, Jason Ekstrand wrote:
> ---
>  src/mesa/drivers/dri/i965/brw_blorp.c            |  6 +-----
>  src/mesa/drivers/dri/i965/brw_context.c          |  2 ++
>  src/mesa/drivers/dri/i965/brw_context.h          |  4 ++++
>  src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 12 ++----------
>  4 files changed, 9 insertions(+), 15 deletions(-)

This looks pretty standalone with no dependencies to the earlier series. Could
we include this before you push them - you could drop the TODO-parts in the
original patches? Or am I missing something?

> 
> diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c
> index f4c80bc..8e36080 100644
> --- a/src/mesa/drivers/dri/i965/brw_blorp.c
> +++ b/src/mesa/drivers/dri/i965/brw_blorp.c
> @@ -280,10 +280,6 @@ brw_blorp_emit_surface_state(struct brw_context *brw,
>                               uint32_t read_domains, uint32_t write_domain,
>                               bool is_render_target)
>  {
> -   /* TODO: This should go in the context */
> -   struct isl_device isl_dev;
> -   isl_device_init(&isl_dev, brw->intelScreen->devinfo, brw->has_swizzling);
> -
>     const struct surface_state_info ss_info = surface_state_infos[brw->gen];
>  
>     struct isl_surf surf;
> @@ -375,7 +371,7 @@ brw_blorp_emit_surface_state(struct brw_context *brw,
>  
>     const uint32_t mocs = is_render_target ? ss_info.rb_mocs : ss_info.tex_mocs;
>  
> -   isl_surf_fill_state(&isl_dev, dw, .surf = &surf, .view = &view,
> +   isl_surf_fill_state(&brw->isl_dev, dw, .surf = &surf, .view = &view,
>                         .address = surface->mt->bo->offset64 + offset,
>                         .aux_surf = aux_surf, .aux_usage = aux_usage,
>                         .aux_address = aux_offset,
> diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
> index c7a66cb..3b9ec47 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -893,6 +893,8 @@ brwCreateContext(gl_api api,
>     brw->must_use_separate_stencil = devinfo->must_use_separate_stencil;
>     brw->has_swizzling = screen->hw_has_swizzling;
>  
> +   isl_device_init(&brw->isl_dev, devinfo, screen->hw_has_swizzling);
> +
>     brw->vs.base.stage = MESA_SHADER_VERTEX;
>     brw->tcs.base.stage = MESA_SHADER_TESS_CTRL;
>     brw->tes.base.stage = MESA_SHADER_TESS_EVAL;
> diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
> index 6b6cfdf..996888b 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.h
> +++ b/src/mesa/drivers/dri/i965/brw_context.h
> @@ -40,6 +40,8 @@
>  #include "brw_compiler.h"
>  #include "intel_aub.h"
>  
> +#include "isl/isl.h"
> +
>  #ifdef __cplusplus
>  extern "C" {
>  	/* Evil hack for using libdrm in a c++ compiler. */
> @@ -889,6 +891,8 @@ struct brw_context
>      */
>     bool needs_unlit_centroid_workaround;
>  
> +   struct isl_device isl_dev;
> +
>     GLuint NewGLState;
>     struct {
>        struct brw_state_flags pipelines[BRW_NUM_PIPELINES];
> diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> index 3bff86d..ae1b900 100644
> --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> @@ -79,10 +79,6 @@ brw_emit_surface_state(struct brw_context *brw,
>                         uint32_t *surf_offset, int surf_index,
>                         unsigned read_domains, unsigned write_domains)
>  {
> -   /* TODO: This should go in the context */
> -   struct isl_device isl_dev;
> -   isl_device_init(&isl_dev, brw->intelScreen->devinfo, brw->has_swizzling);
> -
>     const struct surface_state_info ss_info = surface_state_infos[brw->gen];
>  
>     struct isl_surf surf;
> @@ -111,7 +107,7 @@ brw_emit_surface_state(struct brw_context *brw,
>                                      ss_info.num_dwords * 4, ss_info.ss_align,
>                                      surf_index, surf_offset);
>  
> -   isl_surf_fill_state(&isl_dev, dw, .surf = &surf, .view = view,
> +   isl_surf_fill_state(&brw->isl_dev, dw, .surf = &surf, .view = view,
>                         .address = mt->bo->offset64 + mt->offset,
>                         .aux_surf = aux_surf, .aux_usage = aux_usage,
>                         .aux_address = aux_offset,
> @@ -496,17 +492,13 @@ brw_emit_buffer_surface_state(struct brw_context *brw,
>                                unsigned pitch,
>                                bool rw)
>  {
> -   /* TODO: This should go in the context */
> -   struct isl_device isl_dev;
> -   isl_device_init(&isl_dev, brw->intelScreen->devinfo, brw->has_swizzling);
> -
>     const struct surface_state_info ss_info = surface_state_infos[brw->gen];
>  
>     uint32_t *dw = brw_state_batch(brw, AUB_TRACE_SURFACE_STATE,
>                                    ss_info.num_dwords * 4, ss_info.ss_align,
>                                    out_offset);
>  
> -   isl_buffer_fill_state(&isl_dev, dw,
> +   isl_buffer_fill_state(&brw->isl_dev, dw,
>                           .address = (bo ? bo->offset64 : 0) + buffer_offset,
>                           .size = buffer_size,
>                           .format = surface_format,
> -- 
> 2.5.0.400.gff86faf
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list