Make src/compiler independent of src/mesa

Marek Olšák requested to merge mareko/mesa:compiler-standalone into master

The GLSL and NIR compilers and compiler tests no longer use src/mesa.

Reason: It's cleaner. Second reason: Forking src/mesa for classic drivers within the tree will be possible.

Major changes:

  • compiler/shader_enums.h - a lot of enums from mtypes.h and prog_parameter.h and definitions from config.h are moved here
  • compiler/symbol_table.c/h - moved from src/mesa/program
  • compiler/extensions_table.h - moved from mesa/main
  • compiler/gl_shader_includes.c/h - functions moved from mesa/main/shaderobj.c for #include support in GLSL
  • compiler/gl_driver.h - a lot of types from mtypes.h, prog_parameter.h and other files are moved here, including gl_constants and gl_extensions.
    • There is a new structure gl_driver, which replaces gl_context for the compiler. It contains pointers to gl_constants and gl_extensions and some callbacks like new_program, delete_program, and set_error for calling into the GL driver.
  • compiler/gl_utils.c/h - a lot of functions from mesa/main and mesa/program are moved here, including _mesa_extension_table.

This won't be easy to review. It's huge.

@idr @jekstrand @anholt

Merge request reports