mesa/src
Qiang Yu 9b22ab4167 mesa/st: implement hardware accelerated GL_SELECT
Use an internal geometry shader to handle input primitives. Do full
accurate culling and clipping in the shader and output hit result and
min/max depth to a SSBO for final being written to select buffer.

With multiple result slots in SSBO we can left multiple draws on the
fly and wait them done when buffer is full or exit GL_SELECT mode.

This provides quicker selection response compared to software based
solution. Tested on Discovery Studio 2020: some complex model needs
1~2s selection response time originally, now it's almost selected
immidiately.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15765>
2022-06-06 18:23:49 +00:00
..
amd aco: fix SMEM load_global with VGPR address and non-zero offset 2022-06-06 17:47:59 +00:00
android_stub
asahi asahi: Add wrap library 2022-05-22 17:58:07 -04:00
broadcom v3d/ci: Add traces 2022-06-06 15:18:50 +00:00
compiler mesa: pass select result buffer offset as attribute/varying 2022-06-06 18:23:49 +00:00
drm-shim drm-shim: Cleanup on device file close 2022-05-02 19:50:33 +00:00
egl egl/wayland: skip buffer creation on zink 2022-06-03 18:22:22 +00:00
etnaviv etnaviv: fill all minor GPU features from the kernel 2022-04-27 09:10:27 +00:00
freedreno freedreno: switch to NIR loop unrolling 2022-06-04 16:11:49 +00:00
gallium v3d: save only required states in blitter 2022-06-06 16:25:53 +00:00
gbm gallium: Learn about kopper 2022-04-07 00:17:40 +00:00
getopt
glx glx/dri2: Require DRI2 >= 1.3 for working buffer invalidation 2022-05-17 20:31:50 +00:00
gtest
hgl
imagination pvr: shorten error to err in label names 2022-06-06 15:58:33 +00:00
imgui
intel anv: use anv_cmd_dirty_mask_t type for dynamic state 2022-06-03 14:11:04 +03:00
loader gallium/dri: add missing PIPE_BIND_DRI_PRIME handling 2022-02-08 00:13:07 +00:00
mapi mapi: add api setup header for hw select mode 2022-06-06 18:23:49 +00:00
mesa mesa/st: implement hardware accelerated GL_SELECT 2022-06-06 18:23:49 +00:00
microsoft microsoft/clc: Fixes compiling of microsoft clc with mingw 2022-06-03 16:33:00 +00:00
nouveau nouveau/nvc0: disable GLSL IR loop unrolling 2022-06-04 16:11:49 +00:00
panfrost pan/va: Unit test constant lowering pass 2022-06-06 18:10:24 +00:00
tool pps: Open writable renderer node in DrmDevice::create 2022-05-11 15:41:28 +00:00
util format_utils: properly parenthesize macro params 2022-06-04 13:15:57 +00:00
virtio venus: Add driconf option to enable implicit fencing 2022-06-02 18:05:50 +00:00
vulkan vulkan/device_select: remove needless c99_compat.h includes 2022-06-02 13:09:16 +00:00
meson.build microsoft: Initial vulkan-on-12 driver 2022-03-25 16:21:45 +00:00