#define IR3_MAX_SO_BUFFERS 4
#define IR3_MAX_SO_STREAMS 4
#define IR3_MAX_SO_OUTPUTS 64
-#define IR3_MAX_CONSTANT_BUFFERS 32
+#define IR3_MAX_UBO_PUSH_RANGES 32
/**
}
struct ir3_ubo_range {
- uint32_t offset; /* start offset of this block in const register file */
+ uint32_t offset; /* start offset to push in the const register file */
+ uint32_t block; /* Which constant block */
uint32_t start, end; /* range of block that's actually used */
+ uint16_t bindless_base; /* For bindless, which base register is used */
+ bool bindless;
};
struct ir3_ubo_analysis_state {
- struct ir3_ubo_range range[IR3_MAX_CONSTANT_BUFFERS];
- uint32_t enabled;
+ struct ir3_ubo_range range[IR3_MAX_UBO_PUSH_RANGES];
+ uint32_t num_enabled;
uint32_t size;
uint32_t lower_count;
uint32_t cmdstream_size; /* for per-gen backend to stash required cmdstream size */