diff options
author | Connor Abbott <[email protected]> | 2019-05-31 19:03:48 +0200 |
---|---|---|
committer | Connor Abbott <[email protected]> | 2019-06-19 14:08:28 +0200 |
commit | c813c5776d0926527d9fcd44827811ccb7551154 (patch) | |
tree | 78e2146d5742f06c98dcb5f2382affcfc07b0960 | |
parent | 75063fbac522bcbc2e009c292d666e5aadc2d1f1 (diff) |
nir: Add reorderable memory access enum
Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r-- | src/compiler/nir/nir_print.c | 3 | ||||
-rw-r--r-- | src/compiler/shader_enums.h | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index 6dac4eb5f5c..6b5e7395221 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -448,7 +448,8 @@ print_var_decl(nir_variable *var, print_state *state) const char *const restr = (access & ACCESS_RESTRICT) ? "restrict " : ""; const char *const ronly = (access & ACCESS_NON_WRITEABLE) ? "readonly " : ""; const char *const wonly = (access & ACCESS_NON_READABLE) ? "writeonly " : ""; - fprintf(fp, "%s%s%s%s%s", coher, volat, restr, ronly, wonly); + const char *const reorder = (access & ACCESS_CAN_REORDER) ? "reorderable " : ""; + fprintf(fp, "%s%s%s%s%s%s", coher, volat, restr, ronly, wonly, reorder); #define FORMAT_CASE(x) case x: fprintf(stderr, #x " "); break switch (var->data.image.format) { diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h index 47b1ca01dd6..cf753df3791 100644 --- a/src/compiler/shader_enums.h +++ b/src/compiler/shader_enums.h @@ -725,6 +725,14 @@ enum gl_access_qualifier /** The access may use a non-uniform buffer or image index */ ACCESS_NON_UNIFORM = (1 << 5), + + /* This has the same semantics as NIR_INTRINSIC_CAN_REORDER, only to be + * used with loads. In other words, it means that the load can be + * arbitrarily reordered, or combined with other loads to the same address. + * It is implied by ACCESS_NON_WRITEABLE together with ACCESS_RESTRICT, and + * a lack of ACCESS_COHERENT and ACCESS_VOLATILE. + */ + ACCESS_CAN_REORDER = (1 << 6), }; /** |