[Mesa-dev] [PATCH 00/50] GL_ARB_gpu_shader_int64... this time for sure!
Ian Romanick
idr at freedesktop.org
Tue Nov 29 03:25:15 UTC 2016
From: Ian Romanick <ian.d.romanick at intel.com>
I believe that I have addressed all of the review feedback from the
previous iteration. Many of the patches have been reviewed, and they
should be ready to go.
Patches marked with "vN" in the subject have changed in a non-trivial
way since last being sent to he list.
Several patches that have not changed need review:
Patches 23 through 33 add lowering passes for 64-bit operations.
Patches 42 through 50 enable the extension on BDW+.
After receiving feedback from Nicolai, I have dropped the Gallium
patches from this series. They are still in my arb_gpu_shader_int64
branch. Hopefully someone will pick them up.
https://cgit.freedesktop.org/~idr/mesa/log/?h=arb_gpu_shader_int64
Dave Airlie (19):
mapi: Add support for ARB_gpu_shader_int64.
mesa: Add ARB_gpu_shader_int64 extension bits
glsl: Add ARB_gpu_shader_int64 boilerplate.
glsl: Add basic ARB_gpu_shader_int64 types
mesa: Add support for 64-bit integer uniforms
glsl/ast/ir: Add 64-bit integer constant support
glsl/varyings: Add 64-bit integer support.
glsl: Add 64-bit integer support to uniform initialiser code
glsl/ir: Add support for 64-bit integer conversions.
glsl: Add 64-bit integer support for constant expressions
glsl/ast: Add 64-bit integer support to conversion functions
glsl/ir_builder: Add support for some 64-bit bitcasts.
glsl: Add 64-bit integer support to some operations.
glsl/ast: Add 64-bit integer support in some places.
glsl/varying_packing: Add 64-bit integer support
glsl: Add 64-bit integer functions
mesa/program: Add unused ir operations.
i965: Avoid int64 induced warnings
i965: Avoid int64 warnings.
Ian Romanick (31):
glsl: Add interaction between ARB_gpu_shader_int64 and
ARB_shader_clock
glsl: Print GLSL_TYPE_UINT64 and GLSL_TYPE_INT64 values
glsl: Allow GLSL_TYPE_INT64 for ir_unop_abs and ir_unop_sign
glsl/standalone: Enable ARB_gpu_shader_int64
glsl: Move builtin_function related prototypes to a separate file
glsl: Add "built-in" functions to do 64x64 => 64 multiplication
glsl: Add a lowering pass for 64-bit integer multiplication
glsl: Add "built-in" function for 64-bit integer sign()
glsl: Add a lowering pass for 64-bit integer sign()
glsl: Add "built-in" functions to do 64/64 => 64 division
glsl: Add a lowering pass for 64-bit integer division
glsl: Add "built-in" functions to do 64%64 => 64 modulus
glsl: Add a lowering pass for 64-bit integer modulus
glsl: Optimize redundant pack(unpack()) and unpack(pack())
combinations
nir: Add GLSL_TYPE_INT64 and GLSL_TYPE_UINT64 to glsl_get_bit_size
nir: Add 64-bit integer constant support
nir: Add 64-bit integer support for conversions and bitcasts
nir: Lower packing and unpacking of 64-bit integer types
nir: Shift count for shift opcodes is always 32-bits
nir: Enable 64-bit integer support for almost all unary and binary
operations
nir: In split_var_copies_block, uint, int, and bool types cannot be
matrices
nir: Add support for 64-bit integer types to split_var_copies_block
i965: Really don't emit Q or UQ moves on Gen < 8
i965: Return Q and UQ types for int64 and uint64
i965: Add support for constant evaluation on Q and UQ types
i965: Enable emitting Q and UQ instructions in the fs backend
i965: Add 64-bit integer support for conversions and bitcasts
i965: Enable uploading 64-bit integer uniforms
i965: Enable 64-bit integer support for almost all unary and binary
operations
i965: Split SIMD16 CMP of Q and UQ instructions
i965: Enable ARB_gpu_shader_int64 on Gen8+
src/compiler/Makefile.glsl.am | 1 +
src/compiler/Makefile.sources | 4 +
src/compiler/builtin_type_macros.h | 10 +
src/compiler/glsl/ast.h | 4 +
src/compiler/glsl/ast_function.cpp | 89 +-
src/compiler/glsl/ast_to_hir.cpp | 54 +-
src/compiler/glsl/builtin_functions.cpp | 227 +++-
src/compiler/glsl/builtin_functions.h | 68 ++
src/compiler/glsl/builtin_int64.h | 1202 ++++++++++++++++++++
src/compiler/glsl/builtin_types.cpp | 12 +
src/compiler/glsl/builtin_variables.cpp | 1 +
src/compiler/glsl/generate_ir.cpp | 33 +
src/compiler/glsl/glcpp/glcpp-parse.y | 19 +-
src/compiler/glsl/glcpp/glcpp.h | 4 +-
src/compiler/glsl/glcpp/pp.c | 2 +-
src/compiler/glsl/glsl_lexer.ll | 37 +-
src/compiler/glsl/glsl_parser.yy | 25 +
src/compiler/glsl/glsl_parser_extras.cpp | 10 +
src/compiler/glsl/glsl_parser_extras.h | 7 +
src/compiler/glsl/glsl_to_nir.cpp | 71 +-
src/compiler/glsl/int64.glsl | 121 ++
src/compiler/glsl/ir.cpp | 172 +++
src/compiler/glsl/ir.h | 25 +-
src/compiler/glsl/ir_builder.cpp | 24 +
src/compiler/glsl/ir_builder.h | 6 +
src/compiler/glsl/ir_builder_print_visitor.cpp | 16 +-
src/compiler/glsl/ir_clone.cpp | 2 +
src/compiler/glsl/ir_constant_expression.cpp | 36 +
src/compiler/glsl/ir_expression_operation.py | 65 +-
src/compiler/glsl/ir_optimization.h | 9 +
src/compiler/glsl/ir_print_visitor.cpp | 2 +
src/compiler/glsl/ir_validate.cpp | 123 +-
src/compiler/glsl/link_uniform_initializers.cpp | 2 +
src/compiler/glsl/link_varyings.h | 8 +
src/compiler/glsl/linker.cpp | 1 +
src/compiler/glsl/lower_64bit.cpp | 403 +++++++
.../glsl/lower_blend_equation_advanced.cpp | 1 +
src/compiler/glsl/lower_packed_varyings.cpp | 62 +
src/compiler/glsl/lower_vertex_id.cpp | 1 +
src/compiler/glsl/opt_algebraic.cpp | 28 +
src/compiler/glsl/standalone.cpp | 1 +
src/compiler/glsl/standalone_scaffolding.cpp | 1 +
src/compiler/glsl/tests/lower_64bit_test.cpp | 440 +++++++
src/compiler/glsl/udivmod64.h | 206 ++++
src/compiler/glsl_types.cpp | 45 +
src/compiler/glsl_types.h | 23 +-
src/compiler/nir/nir.c | 4 +
src/compiler/nir/nir.h | 2 +
src/compiler/nir/nir_lower_alu_to_scalar.c | 1 +
src/compiler/nir/nir_lower_double_packing.c | 42 +-
src/compiler/nir/nir_opcodes.py | 36 +-
src/compiler/nir/nir_opt_algebraic.py | 8 +-
src/compiler/nir/nir_print.c | 8 +
src/compiler/nir/nir_split_var_copies.c | 10 +-
src/compiler/nir_types.h | 2 +
src/mapi/glapi/gen/ARB_gpu_shader_int64.xml | 262 +++++
src/mapi/glapi/gen/Makefile.am | 1 +
src/mapi/glapi/gen/apiexec.py | 39 +
src/mapi/glapi/gen/gl_API.xml | 2 +
src/mesa/drivers/dri/i965/brw_eu_emit.c | 13 +-
src/mesa/drivers/dri/i965/brw_fs.cpp | 2 +
.../dri/i965/brw_fs_channel_expressions.cpp | 32 +
src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 85 +-
src/mesa/drivers/dri/i965/brw_inst.h | 8 +
src/mesa/drivers/dri/i965/brw_link.cpp | 5 +
src/mesa/drivers/dri/i965/brw_nir.c | 6 +-
src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp | 4 +-
src/mesa/drivers/dri/i965/brw_reg.h | 1 +
src/mesa/drivers/dri/i965/brw_shader.cpp | 24 +-
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 2 +
src/mesa/drivers/dri/i965/intel_extensions.c | 1 +
src/mesa/main/extensions_table.h | 1 +
src/mesa/main/mtypes.h | 1 +
src/mesa/main/tests/dispatch_sanity.cpp | 38 +
src/mesa/main/uniform_query.cpp | 82 +-
src/mesa/main/uniforms.c | 348 ++++++
src/mesa/main/uniforms.h | 82 ++
src/mesa/program/ir_to_mesa.cpp | 42 +
src/mesa/state_tracker/st_glsl_types.cpp | 6 +
79 files changed, 4774 insertions(+), 129 deletions(-)
create mode 100644 src/compiler/glsl/builtin_functions.h
create mode 100644 src/compiler/glsl/builtin_int64.h
create mode 100644 src/compiler/glsl/generate_ir.cpp
create mode 100644 src/compiler/glsl/int64.glsl
create mode 100644 src/compiler/glsl/lower_64bit.cpp
create mode 100644 src/compiler/glsl/tests/lower_64bit_test.cpp
create mode 100644 src/compiler/glsl/udivmod64.h
create mode 100644 src/mapi/glapi/gen/ARB_gpu_shader_int64.xml
--
2.7.4
More information about the mesa-dev
mailing list