X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Filo%2Filo_gpe.h;h=684626d885608959443ba1a1bcf8267491016051;hb=d2a3de19c6aa5881228734c73df706483a4aecf9;hp=aa979f31a09a28a0c4c9ff88fd0f4afb9146b716;hpb=95c21f12f321bb33ae8e1f1b255680ac8eeffade;p=mesa.git diff --git a/src/gallium/drivers/ilo/ilo_gpe.h b/src/gallium/drivers/ilo/ilo_gpe.h index aa979f31a09..684626d8856 100644 --- a/src/gallium/drivers/ilo/ilo_gpe.h +++ b/src/gallium/drivers/ilo/ilo_gpe.h @@ -63,9 +63,15 @@ struct ilo_vb_state { }; struct ilo_ib_state { - struct pipe_index_buffer state; + struct pipe_resource *buffer; + const void *user_buffer; + unsigned offset; + unsigned index_size; - struct pipe_resource *resource; + /* these are not valid until the state is finalized */ + struct pipe_resource *hw_resource; + unsigned hw_index_size; + /* an offset to be added to pipe_draw_info::start */ int64_t draw_start_offset; }; @@ -113,6 +119,8 @@ struct ilo_viewport_state { struct ilo_scissor_state { /* SCISSOR_RECT */ uint32_t payload[ILO_MAX_VIEWPORTS * 2]; + + struct pipe_scissor_state scissor0; }; struct ilo_rasterizer_clip { @@ -147,7 +155,8 @@ struct ilo_dsa_state { /* DEPTH_STENCIL_STATE */ uint32_t payload[3]; - struct pipe_alpha_state alpha; + uint32_t dw_alpha; + ubyte alpha_ref; }; struct ilo_blend_cso { @@ -221,7 +230,7 @@ struct ilo_cbuf_cso { struct ilo_cbuf_state { struct ilo_cbuf_cso cso[ILO_MAX_CONST_BUFFERS]; - unsigned count; + uint32_t enabled_mask; }; struct ilo_resource_state { @@ -247,8 +256,11 @@ struct ilo_surface_cso { struct ilo_fb_state { struct pipe_framebuffer_state state; + struct ilo_view_surface null_rt; struct ilo_zs_surface null_zs; + unsigned num_samples; + bool offset_to_layers; }; struct ilo_global_binding { @@ -371,7 +383,7 @@ ilo_gpe_init_view_surface_for_texture_gen6(const struct ilo_dev_info *dev, unsigned num_levels, unsigned first_layer, unsigned num_layers, - bool is_rt, bool render_cache_rw, + bool is_rt, bool offset_to_layer, struct ilo_view_surface *surf); void @@ -397,7 +409,7 @@ ilo_gpe_init_view_surface_for_texture_gen7(const struct ilo_dev_info *dev, unsigned num_levels, unsigned first_layer, unsigned num_layers, - bool is_rt, bool render_cache_rw, + bool is_rt, bool offset_to_layer, struct ilo_view_surface *surf); static inline void @@ -443,28 +455,27 @@ ilo_gpe_init_view_surface_for_texture(const struct ilo_dev_info *dev, unsigned num_levels, unsigned first_layer, unsigned num_layers, - bool is_rt, bool render_cache_rw, + bool is_rt, bool offset_to_layer, struct ilo_view_surface *surf) { if (dev->gen >= ILO_GEN(7)) { ilo_gpe_init_view_surface_for_texture_gen7(dev, tex, format, first_level, num_levels, first_layer, num_layers, - is_rt, render_cache_rw, surf); + is_rt, offset_to_layer, surf); } else { ilo_gpe_init_view_surface_for_texture_gen6(dev, tex, format, first_level, num_levels, first_layer, num_layers, - is_rt, render_cache_rw, surf); + is_rt, offset_to_layer, surf); } } void ilo_gpe_init_zs_surface(const struct ilo_dev_info *dev, const struct ilo_texture *tex, - enum pipe_format format, - unsigned level, + enum pipe_format format, unsigned level, unsigned first_layer, unsigned num_layers, - struct ilo_zs_surface *zs); + bool offset_to_layer, struct ilo_zs_surface *zs); void ilo_gpe_init_vs_cso(const struct ilo_dev_info *dev, @@ -517,4 +528,9 @@ ilo_gpe_init_fs_cso(const struct ilo_dev_info *dev, } } +void +ilo_gpe_set_fb(const struct ilo_dev_info *dev, + const struct pipe_framebuffer_state *state, + struct ilo_fb_state *fb); + #endif /* ILO_GPE_H */