[Mesa-dev] [RFC PATCH 00/26] ARB_bindless_texture: round one (GLSL)

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue Apr 11 16:48:11 UTC 2017


Hi,

Because ARB_bindless_texture [1] is a massive feature which requires
a bunch of changes in Mesa, I splitted the whole series in order to
help reviewers. The first one adds all GLSL bits to the compiler.

All ARB_bindless_texture compiler and linker piglit tests pass with
this series. The global passrate (including API and execution tests)
is currently at 97% (65/67).

No regressions with a full piglit run (including compiler tests).

The whole series which implements ARB_bindless_texture for RadeonSI
seems to work fine. It has been tested with some Feral games (Dirt Rally).
Some parts still need to be improved though, but one thing at a time!

Please review,
Thanks!

[1] https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_bindless_texture.txt

Samuel Pitoiset (26):
  mesa: add ARB_bindless_texture to the extensions list
  glsl: add ARB_bindless_texture enable
  glsl: introduce new base types for bindless samplers/images
  glsl: declare new bindless sampler/image types
  glsl: add new glsl_type helpers for bindless sampler/image types
  glsl: add new 'bindless' parameter to get_{sampler,image}_instance()
  glsl: process bindless/bound layout qualifiers
  glsl: select bindless sampler/image types on the fly
  glsl: add texture functions for bindless sampler types
  glsl: fix up an assertion in has_lod() helper
  glsl: fix up an assertion in ir_texture::set_sampler()
  glsl: add image functions for bindless image types
  glsl: apply image qualifiers to bindless images
  glsl: do not make bindless image read-only variables
  glsl: allow input memory qualifiers for images
  glsl: allow image qualifiers inside structures
  glsl: allow bindless samplers/images as varying variables
  glsl: allow bindless samplers/images as vertex shader inputs
  glsl: reject bindless samplers/images frag inputs without 'flat'
  glsl: use fully_specified_type rule with ast_function_expression
  glsl: add ARB_bindless_texture operations
  glsl: add ARB_bindless_texture conversions
  glsl: lower bindless sampler/image packed varyings
  glsl: link bindless layout qualifiers
  glsl: encode (and decode) bindless samplers/images
  glsl: fix up an assertion in glsl_type::sampler_index()

 src/compiler/builtin_type_macros.h                 |   75 +
 src/compiler/glsl/ast.h                            |   20 +-
 src/compiler/glsl/ast_function.cpp                 |  101 +-
 src/compiler/glsl/ast_to_hir.cpp                   |  225 ++-
 src/compiler/glsl/ast_type.cpp                     |   66 +
 src/compiler/glsl/builtin_functions.cpp            | 1810 ++++++++++++--------
 src/compiler/glsl/glsl_parser.yy                   |   51 +-
 src/compiler/glsl/glsl_parser_extras.cpp           |   12 +
 src/compiler/glsl/glsl_parser_extras.h             |   17 +
 src/compiler/glsl/ir.cpp                           |   27 +-
 src/compiler/glsl/ir.h                             |    6 +
 src/compiler/glsl/ir_clone.cpp                     |    2 +
 src/compiler/glsl/ir_expression_operation.py       |    6 +
 src/compiler/glsl/ir_print_visitor.cpp             |    5 +-
 src/compiler/glsl/ir_validate.cpp                  |   20 +
 src/compiler/glsl/link_uniform_initializers.cpp    |    2 +
 src/compiler/glsl/linker.cpp                       |   44 +
 src/compiler/glsl/lower_packed_varyings.cpp        |   16 +
 src/compiler/glsl/shader_cache.cpp                 |   10 +-
 src/compiler/glsl/standalone_scaffolding.cpp       |    1 +
 src/compiler/glsl_types.cpp                        |  259 ++-
 src/compiler/glsl_types.h                          |   47 +-
 src/compiler/nir_types.cpp                         |    5 +-
 src/intel/compiler/brw_fs.cpp                      |    2 +
 src/intel/compiler/brw_shader.cpp                  |    2 +
 src/intel/compiler/brw_vec4_visitor.cpp            |    2 +
 .../dri/i965/brw_fs_channel_expressions.cpp        |    4 +
 src/mesa/main/extensions_table.h                   |    1 +
 src/mesa/main/mtypes.h                             |   11 +
 src/mesa/program/ir_to_mesa.cpp                    |    8 +
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp         |    5 +
 src/mesa/state_tracker/st_glsl_types.cpp           |    2 +
 32 files changed, 2020 insertions(+), 844 deletions(-)

-- 
2.12.2



More information about the mesa-dev mailing list