swr: fix build with mingw
[mesa.git] / src / gallium / drivers / r600 / r600_pipe.h
index 6204e3c557b8ea34b3ef2f25f8dcc3f8aacd32dd..e2c34d7807049aaaf7f18a0cbde1e6fb9c263b90 100644 (file)
@@ -343,12 +343,14 @@ struct r600_pipe_shader_selector {
        struct r600_pipe_shader *current;
 
        struct tgsi_token       *tokens;
+        struct nir_shader       *nir;
        struct pipe_stream_output_info  so;
        struct tgsi_shader_info         info;
 
        unsigned        num_shaders;
 
        enum pipe_shader_type   type;
+        enum pipe_shader_ir ir_type;
 
        /* geometry shader properties */
        enum pipe_prim_type     gs_output_prim;
@@ -446,8 +448,6 @@ struct r600_shader_state {
 };
 
 struct r600_atomic_buffer_state {
-       uint32_t enabled_mask;
-       uint32_t dirty_mask;
        struct pipe_shader_buffer buffer[EG_MAX_ATOMIC_BUFFERS];
 };
 
@@ -702,12 +702,12 @@ void *evergreen_create_db_flush_dsa(struct r600_context *rctx);
 void *evergreen_create_resolve_blend(struct r600_context *rctx);
 void *evergreen_create_decompress_blend(struct r600_context *rctx);
 void *evergreen_create_fastclear_blend(struct r600_context *rctx);
-boolean evergreen_is_format_supported(struct pipe_screen *screen,
-                                     enum pipe_format format,
-                                     enum pipe_texture_target target,
-                                     unsigned sample_count,
-                                     unsigned storage_sample_count,
-                                     unsigned usage);
+bool evergreen_is_format_supported(struct pipe_screen *screen,
+                                  enum pipe_format format,
+                                  enum pipe_texture_target target,
+                                  unsigned sample_count,
+                                  unsigned storage_sample_count,
+                                  unsigned usage);
 void evergreen_init_color_surface(struct r600_context *rctx,
                                  struct r600_surface *surf);
 void evergreen_init_color_surface_rat(struct r600_context *rctx,
@@ -759,12 +759,12 @@ void *r600_create_resolve_blend(struct r600_context *rctx);
 void *r700_create_resolve_blend(struct r600_context *rctx);
 void *r600_create_decompress_blend(struct r600_context *rctx);
 bool r600_adjust_gprs(struct r600_context *rctx);
-boolean r600_is_format_supported(struct pipe_screen *screen,
-                                enum pipe_format format,
-                                enum pipe_texture_target target,
-                                unsigned sample_count,
-                                unsigned storage_sample_count,
-                                unsigned usage);
+bool r600_is_format_supported(struct pipe_screen *screen,
+                             enum pipe_format format,
+                             enum pipe_texture_target target,
+                             unsigned sample_count,
+                             unsigned storage_sample_count,
+                             unsigned usage);
 void r600_update_db_shader_control(struct r600_context * rctx);
 void r600_setup_scratch_buffers(struct r600_context *rctx);
 
@@ -773,7 +773,7 @@ void r600_context_gfx_flush(void *context, unsigned flags,
                            struct pipe_fence_handle **fence);
 void r600_begin_new_cs(struct r600_context *ctx);
 void r600_flush_emit(struct r600_context *ctx);
-void r600_need_cs_space(struct r600_context *ctx, unsigned num_dw, boolean count_draw_in);
+void r600_need_cs_space(struct r600_context *ctx, unsigned num_dw, boolean count_draw_in, unsigned num_atomics);
 void r600_emit_pfp_sync_me(struct r600_context *rctx);
 void r600_cp_dma_copy_buffer(struct r600_context *rctx,
                             struct pipe_resource *dst, uint64_t dst_offset,
@@ -1057,7 +1057,8 @@ void eg_dump_debug_state(struct pipe_context *ctx, FILE *f,
                         unsigned flags);
 
 struct r600_pipe_shader_selector *r600_create_shader_state_tokens(struct pipe_context *ctx,
-                                                                 const struct tgsi_token *tokens,
+                                                                 const void *tokens,
+                                                                 enum pipe_shader_ir,
                                                                  unsigned pipe_shader_type);
 int r600_shader_select(struct pipe_context *ctx,
                       struct r600_pipe_shader_selector* sel,
@@ -1067,10 +1068,14 @@ void r600_delete_shader_selector(struct pipe_context *ctx,
                                 struct r600_pipe_shader_selector *sel);
 
 struct r600_shader_atomic;
-bool evergreen_emit_atomic_buffer_setup(struct r600_context *rctx,
-                                       struct r600_pipe_shader *cs_shader,
+void evergreen_emit_atomic_buffer_setup_count(struct r600_context *rctx,
+                                             struct r600_pipe_shader *cs_shader,
+                                             struct r600_shader_atomic *combined_atomics,
+                                             uint8_t *atomic_used_mask_p);
+void evergreen_emit_atomic_buffer_setup(struct r600_context *rctx,
+                                       bool is_compute,
                                        struct r600_shader_atomic *combined_atomics,
-                                       uint8_t *atomic_used_mask_p);
+                                       uint8_t atomic_used_mask);
 void evergreen_emit_atomic_buffer_save(struct r600_context *rctx,
                                       bool is_compute,
                                       struct r600_shader_atomic *combined_atomics,