mesa/src
Emma Anholt 772cacff32 glsl: Write a new test for GLSL and NIR mediump lowering.
The mediump lowering tests are important for poking at the lowering pass
behavior, since you can't really assert the behavior in any given driver,
given that the GLSL spec allows any mediump op to be done in highp.

But, in hacking on mediump lowering, I wanted several things that the old
test couldn't do:

- Be able to assert about the actual NIR code we expect to generate for a
  hypothetical driver (important if other compiler stages might do invalid
  transformations like eliminating highp temps, or if we were to move the
  lowering after GLSL IR)
- Run faster (gtest unit tests rather than python forking off the standalone
  glsl compiler per testcase).
- Express expectations with a lot less escaping of typical syntax.
- High-quality logs for displaying failures.

This new test does all of that, I think, though I haven't converted all of
the unit tests over yet.  In converting, I dropped some of the
combinatorial explosion for float/int variations, instead only doing so
when it gets at some different code path (default precision flags).  I've
also included some new tests I wrote in the process of writing my proposed
gl_nir mediump lowering.

Even if the conversion isn't complete, getting these tests to run faster
is probably a good idea on its own, for anyone iterating running Mesa's
unit tests (80 tests in 25ms, compared to 109 tests in 1.5s!).

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21886>
2023-03-22 22:52:45 +00:00
..
amd radv/ci: update the navi10 expectations 2023-03-22 16:42:29 +00:00
android_stub util/log: improve logger_android 2023-02-22 17:55:40 +00:00
asahi asahi: fix a few typos 2023-03-17 22:11:33 +00:00
broadcom v3d/ci: group dEQP-GLES3.functional.texture.specification.teximage2d_pbo.* flakes and add another one 2023-03-22 07:24:28 +00:00
c11 c11: Remove _MTX_INITIALIZER_NP for windows 2022-11-09 04:38:28 +00:00
compiler glsl: Write a new test for GLSL and NIR mediump lowering. 2023-03-22 22:52:45 +00:00
drm-shim drm-shim: Use hide_drm_device_path() to hide other drm devices 2022-12-30 15:51:11 -08:00
egl egl: don't expose swrast device if swrast is not built 2023-03-22 18:23:37 +00:00
etnaviv ci/etnaviv: Get the gc2000_piglit manual job mostly working. 2023-03-21 23:46:13 +00:00
freedreno Move combining clip and cull optimization before linking 2023-03-22 19:01:40 +00:00
gallium freedreno/a6xx: Restore mode 2023-03-22 20:53:17 +00:00
gbm gbm: drop unnecessary vulkan dependency 2023-02-23 18:31:22 +00:00
getopt
glx glx: fix memory leak related to __glXCloseDisplay() 2023-03-20 21:12:54 +00:00
gtest
imagination pvr: Don't allocate/upload 0 size coeff programs 2023-03-22 04:15:57 +00:00
imgui
intel intel/fs: restore message layout changes for cube array 2023-03-22 20:18:11 +00:00
loader loader: Use libdrm shim 2023-03-05 16:31:51 +00:00
mapi mesa ctx->API --> _mesa_is_foo(ctx) 2023-03-20 06:39:57 +00:00
mesa Move combining clip and cull optimization before linking 2023-03-22 19:01:40 +00:00
microsoft dzn: Claim the arithmetic subgroup bit 2023-03-18 02:33:42 +00:00
nouveau nouveau: Make getSize return unsigned int 2023-03-17 16:08:33 +00:00
panfrost panfrost: fix strict-aliasing violations when packing fb ptrs 2023-03-22 11:50:36 +00:00
tool pps: Fix build errors. 2023-03-13 01:22:46 +00:00
util util/dynarray: allow an initial stack allocation to be used 2023-03-22 09:24:18 +00:00
virtio virgl: Enable AMD_vertex_shader_(layer|viewport_index) when host supports it 2023-03-16 09:30:00 +00:00
vulkan vulkan: depend idep_vulkan_runtime_headers on vk_physical_device_features.h 2023-03-21 14:25:40 +00:00
meson.build hgl: remove 2023-02-18 00:44:43 +00:00