freedreno/ir3: fix register usage calculations
[mesa.git] / src / gallium / auxiliary / rbug / rbug_context.h
index bcd2a826a77708f2f8ac8aa8d94c984348510388..573507804fa3ff790561ab0b7275a93eb0ec9c4e 100644 (file)
 #ifndef _RBUG_PROTO_CONTEXT_H_
 #define _RBUG_PROTO_CONTEXT_H_
 
-#include "rbug/rbug_proto.h"
-#include "rbug/rbug_texture.h"
+#include "rbug_proto.h"
+#include "rbug_core.h"
 
-typedef uint64_t rbug_context_t;
+typedef enum
+{
+       RBUG_BLOCK_BEFORE = 1,
+       RBUG_BLOCK_AFTER = 2,
+       RBUG_BLOCK_RULE = 4,
+       RBUG_BLOCK_MASK = 7
+} rbug_block_t;
 
 struct rbug_proto_context_list
 {
@@ -54,13 +60,39 @@ struct rbug_proto_context_info
        rbug_context_t context;
 };
 
-struct rbug_proto_context_block_draw
+struct rbug_proto_context_draw_block
+{
+       struct rbug_header header;
+       rbug_context_t context;
+       rbug_block_t block;
+};
+
+struct rbug_proto_context_draw_step
+{
+       struct rbug_header header;
+       rbug_context_t context;
+       rbug_block_t step;
+};
+
+struct rbug_proto_context_draw_unblock
+{
+       struct rbug_header header;
+       rbug_context_t context;
+       rbug_block_t unblock;
+};
+
+struct rbug_proto_context_draw_rule
 {
        struct rbug_header header;
        rbug_context_t context;
+       rbug_shader_t vertex;
+       rbug_shader_t fragment;
+       rbug_texture_t texture;
+       rbug_texture_t surface;
+       rbug_block_t block;
 };
 
-struct rbug_proto_context_unblock_draw
+struct rbug_proto_context_flush
 {
        struct rbug_header header;
        rbug_context_t context;
@@ -78,10 +110,22 @@ struct rbug_proto_context_info_reply
 {
        struct rbug_header header;
        uint32_t serial;
+       rbug_shader_t vertex;
+       rbug_shader_t fragment;
+       rbug_texture_t *texs;
+       uint32_t texs_len;
        rbug_texture_t *cbufs;
        uint32_t cbufs_len;
-       rbug_texture_t zdbuf;
-       uint8_t blocked;
+       rbug_texture_t zsbuf;
+       rbug_block_t blocker;
+       rbug_block_t blocked;
+};
+
+struct rbug_proto_context_draw_blocked
+{
+       struct rbug_header header;
+       rbug_context_t context;
+       rbug_block_t block;
 };
 
 int rbug_send_context_list(struct rbug_connection *__con,
@@ -91,14 +135,34 @@ int rbug_send_context_info(struct rbug_connection *__con,
                            rbug_context_t context,
                            uint32_t *__serial);
 
-int rbug_send_context_block_draw(struct rbug_connection *__con,
+int rbug_send_context_draw_block(struct rbug_connection *__con,
                                  rbug_context_t context,
+                                 rbug_block_t block,
                                  uint32_t *__serial);
 
-int rbug_send_context_unblock_draw(struct rbug_connection *__con,
+int rbug_send_context_draw_step(struct rbug_connection *__con,
+                                rbug_context_t context,
+                                rbug_block_t step,
+                                uint32_t *__serial);
+
+int rbug_send_context_draw_unblock(struct rbug_connection *__con,
                                    rbug_context_t context,
+                                   rbug_block_t unblock,
                                    uint32_t *__serial);
 
+int rbug_send_context_draw_rule(struct rbug_connection *__con,
+                                rbug_context_t context,
+                                rbug_shader_t vertex,
+                                rbug_shader_t fragment,
+                                rbug_texture_t texture,
+                                rbug_texture_t surface,
+                                rbug_block_t block,
+                                uint32_t *__serial);
+
+int rbug_send_context_flush(struct rbug_connection *__con,
+                            rbug_context_t context,
+                            uint32_t *__serial);
+
 int rbug_send_context_list_reply(struct rbug_connection *__con,
                                  uint32_t serial,
                                  rbug_context_t *contexts,
@@ -107,22 +171,40 @@ int rbug_send_context_list_reply(struct rbug_connection *__con,
 
 int rbug_send_context_info_reply(struct rbug_connection *__con,
                                  uint32_t serial,
+                                 rbug_shader_t vertex,
+                                 rbug_shader_t fragment,
+                                 rbug_texture_t *texs,
+                                 uint32_t texs_len,
                                  rbug_texture_t *cbufs,
                                  uint32_t cbufs_len,
-                                 rbug_texture_t zdbuf,
-                                 uint8_t blocked,
+                                 rbug_texture_t zsbuf,
+                                 rbug_block_t blocker,
+                                 rbug_block_t blocked,
                                  uint32_t *__serial);
 
+int rbug_send_context_draw_blocked(struct rbug_connection *__con,
+                                   rbug_context_t context,
+                                   rbug_block_t block,
+                                   uint32_t *__serial);
+
 struct rbug_proto_context_list * rbug_demarshal_context_list(struct rbug_proto_header *header);
 
 struct rbug_proto_context_info * rbug_demarshal_context_info(struct rbug_proto_header *header);
 
-struct rbug_proto_context_block_draw * rbug_demarshal_context_block_draw(struct rbug_proto_header *header);
+struct rbug_proto_context_draw_block * rbug_demarshal_context_draw_block(struct rbug_proto_header *header);
+
+struct rbug_proto_context_draw_step * rbug_demarshal_context_draw_step(struct rbug_proto_header *header);
 
-struct rbug_proto_context_unblock_draw * rbug_demarshal_context_unblock_draw(struct rbug_proto_header *header);
+struct rbug_proto_context_draw_unblock * rbug_demarshal_context_draw_unblock(struct rbug_proto_header *header);
+
+struct rbug_proto_context_draw_rule * rbug_demarshal_context_draw_rule(struct rbug_proto_header *header);
+
+struct rbug_proto_context_flush * rbug_demarshal_context_flush(struct rbug_proto_header *header);
 
 struct rbug_proto_context_list_reply * rbug_demarshal_context_list_reply(struct rbug_proto_header *header);
 
 struct rbug_proto_context_info_reply * rbug_demarshal_context_info_reply(struct rbug_proto_header *header);
 
+struct rbug_proto_context_draw_blocked * rbug_demarshal_context_draw_blocked(struct rbug_proto_header *header);
+
 #endif