[Mesa-dev] [PATCH v3 19/32] glsl: relax bindless sampler arrays indexing
Nicolai Hähnle
nhaehnle at gmail.com
Thu May 4 12:29:52 UTC 2017
On 02.05.2017 22:53, Samuel Pitoiset wrote:
> From section 4.1.7 of the ARB_bindless_texture spec:
>
> "Samplers aggregated into arrays within a shader (using square
> brackets []) can be indexed with arbitrary integer expressions."
>
> v3: - update spec comment formatting
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com> (v2)
> Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com> (v2)
Again, feel free to remove the (v2) on those.
> ---
> src/compiler/glsl/ast_array_index.cpp | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/compiler/glsl/ast_array_index.cpp b/src/compiler/glsl/ast_array_index.cpp
> index dfa44b703d..f6b7a64a28 100644
> --- a/src/compiler/glsl/ast_array_index.cpp
> +++ b/src/compiler/glsl/ast_array_index.cpp
> @@ -299,12 +299,18 @@ _mesa_ast_array_index_to_hir(void *mem_ctx,
> * values must not diverge between shader invocations run together. If the
> * values *do* diverge, then the behavior of the operation requiring a
> * dynamically uniform expression is undefined.
> + *
> + * From section 4.1.7 of the ARB_bindless_texture spec:
> + *
> + * "Samplers aggregated into arrays within a shader (using square
> + * brackets []) can be indexed with arbitrary integer expressions."
> */
> if (array->type->without_array()->is_sampler()) {
> if (!state->is_version(400, 320) &&
> !state->ARB_gpu_shader5_enable &&
> !state->EXT_gpu_shader5_enable &&
> - !state->OES_gpu_shader5_enable) {
> + !state->OES_gpu_shader5_enable &&
> + !state->has_bindless()) {
> if (state->is_version(130, 300))
> _mesa_glsl_error(&loc, state,
> "sampler arrays indexed with non-constant "
>
--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
More information about the mesa-dev
mailing list