[Mesa-dev] [PATCH v3 00/29] add fp64 support to mesa and glsl compiler

Ilia Mirkin imirkin at alum.mit.edu
Sun Feb 8 01:00:16 PST 2015


This is v3 of the patchset which includes fixes based on Ian's
feedback with the exception of his comment on patch 23 (glsl: validate
output types for shader stages), i.e. whether it needs to exist at all
and isn't that being checked elsewhere. I am unfortunately not
familiar enough with the overall flow of things yet to work it
out. Perhaps someone else can take a look... Tapani?

Chris also had a suggestion for standardizing the size_mul/dmul/etc
variable names... unfortunately various ones count different
things. Some are 4/8, others are 1/2. I left them as is for now.

If I missed anything from the existing feedback, please let me
know. As before, this passes all current fp64 tests in piglit on nvc0
with the exception of 4 initializer tests which Dave is looking at but
is fairly confident the error is in st/mesa somewhere.

Patches also available at https://github.com/imirkin/mesa/commits/fp64-4

Dave Airlie (25):
  glapi: add ARB_gpu_shader_fp64 (v2)
  mesa: add ARB_gpu_shader_fp64 extension info (v2)
  mesa: add mesa_type_is_double helper function (v2)
  mesa: add double uniform support. (v5)
  glsl: add ARB_gpu_shader_fp64 to the glsl extensions. (v2)
  glsl: Add double builtin type generation
  glsl: Uniform linking support for doubles
  glsl/ir: Add builtin function support for doubles
  glsl/ir: Add printing support for doubles
  glsl/ir: Add cloning support for doubles
  glsl/ir: Add builtin constant function support for doubles
  glsl/ir: Add builder support for functions with double floats
  glsl: Add support doubles in optimization passes
  glsl: Add ubo lowering support for doubles
  glsl/ast: Support double floats
  glsl/parser: Support double floats
  glsl/lexer: Support double floats
  glsl: Support double inouts
  glsl: Support double loop control
  glsl: Linking support for doubles
  glsl: add double support to lower_mat_op_to_vec
  glsl: enable/disable certain lowering passes for doubles
  glsl/lower_instructions: add double lowering passes
  glsl: implement double builtin functions
  glsl: lower double optional passes (v2)

Ilia Mirkin (3):
  glsl: Add double builtin type
  glsl: add a lowering pass for frexp/ldexp with double arguments
  glsl/tests: add DOUBLE/IMAGE types

Tapani Pälli (1):
  glsl: validate output types for shader stages

 src/glsl/ast.h                                     |   2 +
 src/glsl/ast_function.cpp                          |  66 +-
 src/glsl/ast_to_hir.cpp                            |  78 ++-
 src/glsl/builtin_functions.cpp                     | 751 ++++++++++++++-------
 src/glsl/builtin_type_macros.h                     |  16 +
 src/glsl/builtin_types.cpp                         |  30 +
 src/glsl/glcpp/glcpp-parse.y                       |   3 +
 src/glsl/glsl_lexer.ll                             |  31 +-
 src/glsl/glsl_parser.yy                            |  33 +-
 src/glsl/glsl_parser_extras.cpp                    |   5 +
 src/glsl/glsl_parser_extras.h                      |   7 +
 src/glsl/glsl_types.cpp                            | 109 ++-
 src/glsl/glsl_types.h                              |  20 +-
 src/glsl/ir.cpp                                    | 111 ++-
 src/glsl/ir.h                                      |  22 +
 src/glsl/ir_builder.cpp                            |  23 +
 src/glsl/ir_builder.h                              |   5 +
 src/glsl/ir_clone.cpp                              |   1 +
 src/glsl/ir_constant_expression.cpp                | 247 ++++++-
 src/glsl/ir_optimization.h                         |   2 +
 src/glsl/ir_print_visitor.cpp                      |  11 +
 src/glsl/ir_set_program_inouts.cpp                 |  28 +-
 src/glsl/ir_validate.cpp                           |  72 +-
 src/glsl/link_uniform_initializers.cpp             |   8 +-
 src/glsl/link_uniforms.cpp                         |   9 +-
 src/glsl/link_varyings.cpp                         |   3 +-
 src/glsl/loop_controls.cpp                         |   8 +-
 src/glsl/lower_instructions.cpp                    | 520 +++++++++++++-
 src/glsl/lower_mat_op_to_vec.cpp                   |   2 +
 src/glsl/lower_ubo_reference.cpp                   |  18 +-
 src/glsl/opt_algebraic.cpp                         |  26 +-
 src/glsl/opt_constant_propagation.cpp              |   3 +
 src/glsl/opt_minmax.cpp                            |  13 +
 src/glsl/standalone_scaffolding.cpp                |   1 +
 src/glsl/tests/uniform_initializer_utils.cpp       |  12 +
 src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml         | 143 ++++
 src/mapi/glapi/gen/ARB_separate_shader_objects.xml |   2 -
 src/mapi/glapi/gen/Makefile.am                     |   1 +
 src/mapi/glapi/gen/gl_API.xml                      |   2 +
 src/mesa/main/extensions.c                         |   1 +
 src/mesa/main/mtypes.h                             |   1 +
 src/mesa/main/tests/dispatch_sanity.cpp            |  70 +-
 src/mesa/main/uniform_query.cpp                    |  44 +-
 src/mesa/main/uniforms.c                           | 380 ++++++++++-
 src/mesa/main/uniforms.h                           |  92 ++-
 src/mesa/program/ir_to_mesa.cpp                    |  28 +-
 src/mesa/program/prog_parameter.c                  |  16 +-
 src/mesa/program/prog_parameter.h                  |  23 +
 48 files changed, 2658 insertions(+), 441 deletions(-)
 create mode 100644 src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml

-- 
2.0.5



More information about the mesa-dev mailing list