summaryrefslogtreecommitdiffstats
path: root/video/out/gpu/ra.h
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/gpu/ra.h')
-rw-r--r--video/out/gpu/ra.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/video/out/gpu/ra.h b/video/out/gpu/ra.h
index 15fa782bdd..5c5c851e64 100644
--- a/video/out/gpu/ra.h
+++ b/video/out/gpu/ra.h
@@ -50,8 +50,7 @@ enum {
RA_CAP_BUF_RO = 1 << 5, // supports RA_VARTYPE_BUF_RO
RA_CAP_BUF_RW = 1 << 6, // supports RA_VARTYPE_BUF_RW
RA_CAP_NESTED_ARRAY = 1 << 7, // supports nested arrays
- RA_CAP_SHARED_BINDING = 1 << 8, // sampler/image/buffer namespaces are disjoint
- RA_CAP_GLOBAL_UNIFORM = 1 << 9, // supports using "naked" uniforms (not UBO)
+ RA_CAP_GLOBAL_UNIFORM = 1 << 8, // supports using "naked" uniforms (not UBO)
};
enum ra_ctype {
@@ -206,8 +205,8 @@ struct ra_renderpass_input {
// RA_VARTYPE_IMG_W: image unit
// RA_VARTYPE_BUF_* buffer binding point
// Other uniforms: unused
- // If RA_CAP_SHARED_BINDING is set, these may only be unique per input type.
- // Otherwise, these must be unique for all input values.
+ // Bindings must be unique within each namespace, as specified by
+ // desc_namespace()
int binding;
};
@@ -396,6 +395,11 @@ struct ra_fns {
// but must be implemented if ra.max_pushc_size > 0.
struct ra_layout (*push_constant_layout)(struct ra_renderpass_input *inp);
+ // Returns an abstract namespace index for a given renderpass input type.
+ // This will always be a value >= 0 and < RA_VARTYPE_COUNT. This is used to
+ // figure out which inputs may share the same value of `binding`.
+ int (*desc_namespace)(enum ra_vartype type);
+
// Clear the dst with the given color (rgba) and within the given scissor.
// dst must have dst->params.render_dst==true. Content outside of the
// scissor is preserved.