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

Ilia Mirkin imirkin at alum.mit.edu
Mon Feb 9 01:14:12 PST 2015


I just sent out a few updated patches (latest can be seen in
https://github.com/imirkin/mesa/commits/fp64-5) -- with all that in
place the mysterious failure in one of the initializer tests is gone,
and the constbuf locations being used correspond to the ones that we
expect instead of having *tons* of empty space.

On Sun, Feb 8, 2015 at 4:00 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> 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