Merge remote branch 'origin/master' into nv50-compiler
[mesa.git] / src / gallium / winsys / r600 / drm / radeon_priv.h
index b91421f43898b22e4a5065a6b9df0b7cf42e5323..84e552ba4d3b1c2b766a28c2f095e8bcc3b536d8 100644 (file)
@@ -37,17 +37,20 @@ struct radeon_register {
        char                            name[64];
 };
 
-struct radeon_type {
-       unsigned                        npm4;
-       unsigned                        id;
-       unsigned                        range_start;
-       unsigned                        range_end;
-       unsigned                        stride;
-       unsigned                        immediate;
-       char                            name[64];
+struct radeon_sub_type {
+       int                             shader_type;
+       const struct radeon_register    *regs;
        unsigned                        nstates;
+};
+
+struct radeon_stype_info {
+       unsigned                        stype;
+       unsigned                        num;
+       unsigned                        stride;
        radeon_state_pm4_t              pm4;
-       const struct radeon_register    *regs;
+       struct radeon_sub_type          reginfo[R600_SHADER_MAX];
+       unsigned                        base_id;
+       unsigned                        npm4;
 };
 
 struct radeon {
@@ -55,9 +58,10 @@ struct radeon {
        int                             refcount;
        unsigned                        device;
        unsigned                        family;
-       unsigned                        nstate;
-       unsigned                        ntype;
-       const struct radeon_type        *type;
+       unsigned                        nstype;
+       unsigned                        nstate_per_shader;
+       unsigned                        *state_type_id;
+       struct radeon_stype_info        *stype;
 };
 
 extern struct radeon *radeon_new(int fd, unsigned device);
@@ -65,45 +69,6 @@ extern struct radeon *radeon_incref(struct radeon *radeon);
 extern struct radeon *radeon_decref(struct radeon *radeon);
 extern unsigned radeon_family_from_device(unsigned device);
 extern int radeon_is_family_compatible(unsigned family1, unsigned family2);
-extern int radeon_reg_id(struct radeon *radeon, unsigned offset, unsigned *typeid, unsigned *stateid, unsigned *id);
-extern unsigned radeon_type_from_id(struct radeon *radeon, unsigned id);
-
-/*
- * radeon context functions
- */
-#pragma pack(1)
-struct radeon_cs_reloc {
-       uint32_t        handle;
-       uint32_t        read_domain;
-       uint32_t        write_domain;
-       uint32_t        flags;
-};
-#pragma pack()
-
-struct radeon_ctx {
-       int                             refcount;
-       struct radeon                   *radeon;
-       u32                             *pm4;
-       u32                             cpm4;
-       u32                             draw_cpm4;
-       unsigned                        id;
-       unsigned                        next_id;
-       unsigned                        nreloc;
-       struct radeon_cs_reloc          *reloc;
-       unsigned                        nbo;
-       struct radeon_bo                **bo;
-       unsigned                        ndraw;
-       struct radeon_draw              *cdraw;
-       struct radeon_draw              **draw;
-       unsigned                        nstate;
-       struct radeon_state             **state;
-};
-
-int radeon_ctx_set_bo_new(struct radeon_ctx *ctx, struct radeon_bo *bo);
-struct radeon_bo *radeon_ctx_get_bo(struct radeon_ctx *ctx, unsigned reloc);
-void radeon_ctx_get_placement(struct radeon_ctx *ctx, unsigned reloc, u32 *placement);
-int radeon_ctx_set_draw_new(struct radeon_ctx *ctx, struct radeon_draw *draw);
-int radeon_ctx_draw(struct radeon_ctx *ctx);
 
 /*
  * r600/r700 context functions