On 08.05.2016 23:29, Tobias Klausmann wrote:
On 08.05.2016 22:50, Ilia Mirkin wrote:
What exactly gets fed into the CLIPDIST and CULLDIST semantics? e.g.
is CULLDIST[0].x the first cull distance, or is it the first entity in
the combined cull/clip distance array? If the former, then this won't
work as implemented on nouveau. If the latter, then why bother with
the separate semantics in the first place?
Its the latter case, as you mostly already suspected. Everything is
lowered to gl_ClipDistanceMESA and comes in with CLIPDIST. Right now
only the properties [1], [2] are used to configure clip/cull within
the nvc0 part. For now i kept them because somebody "could" face
hardware configured differently, compared to the nvidia one with its
combined clip/cull
[1]
https://cgit.freedesktop.org/mesa/mesa/commit/?id=e70c66197ea10cf052010c7352420a2ae0b0a50a
[2]
https://cgit.freedesktop.org/mesa/mesa/commit/?id=5227e915803079e5e72a0b2fde3a11d62af8df99
Greetings,
Tobias
So, shall we find some verdict for the CULLDIST semantics? Keep it or
try to get rid of it?
(Adding Marek and Dave, but feel free to add more to this conversation
directly)
On Sun, May 8, 2016 at 4:44 PM, Tobias Klausmann
<tobias.johannes.klausm...@mni.thm.de> wrote:
After the cleanup of my patches in v2, this is another take on
finishing this
extension.
v2: cleanup, reordering of patches, split lowering pass adapation
(Dave Airlie)
v3:
- drop wrong codesection for array size check (suggested by
Timothy Arceri) and
with it the now useless helper to see if an array was unsized
- fix GL3.txt, add releasenote
Dave Airlie (1):
glsl: rename lower_clip_distance to lower_distance.
Tobias Klausmann (10):
glapi: Add GL_ARB_cull_distance
mesa/main: Add support for GL_ARB_cull_distance (v2)
mesa/prog: Add varyings for arb_cull_distance
glsl: Extend lowering pass for gl_ClipDistance to support other
arrays
(v2)
glsl: Add arb_cull_distance support
gallium: Add a pipe cap for arb_cull_distance
mesa/st: Add support for GL_ARB_cull_distance
nv50/ir: Check for TGSI_SEMANTIC_CULLDIST in tgsi declarations
llvmpipe: Enable already implemented cull_distance
nvc0: Implement cull_distance as a special form of clip distance
docs/GL3.txt | 2 +-
docs/relnotes/11.3.0.html | 1 +
src/compiler/Makefile.sources | 2 +-
src/compiler/glsl/ast_to_hir.cpp | 14 +
src/compiler/glsl/builtin_variables.cpp | 11 +-
src/compiler/glsl/glcpp/glcpp-parse.y | 3 +
src/compiler/glsl/glsl_parser_extras.cpp | 1 +
src/compiler/glsl/glsl_parser_extras.h | 2 +
src/compiler/glsl/ir_optimization.h | 3 +-
src/compiler/glsl/link_varyings.cpp | 12 +-
src/compiler/glsl/link_varyings.h | 1 +
src/compiler/glsl/linker.cpp | 113 +++-
src/compiler/glsl/lower_clip_distance.cpp | 574
--------------------
src/compiler/glsl/lower_distance.cpp | 601
+++++++++++++++++++++
src/compiler/glsl/standalone_scaffolding.cpp | 1 +
src/compiler/glsl/tests/varyings_test.cpp | 27 +
src/compiler/shader_enums.h | 4 +
src/gallium/docs/source/screen.rst | 2 +
src/gallium/drivers/freedreno/freedreno_screen.c | 1 +
src/gallium/drivers/i915/i915_screen.c | 1 +
src/gallium/drivers/ilo/ilo_screen.c | 1 +
src/gallium/drivers/llvmpipe/lp_screen.c | 2 +
.../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 3 +
src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 +
src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 +
src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 2 +
src/gallium/drivers/nouveau/nvc0/nvc0_program.h | 1 +
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 +
src/gallium/drivers/r300/r300_screen.c | 1 +
src/gallium/drivers/r600/r600_pipe.c | 1 +
src/gallium/drivers/radeonsi/si_pipe.c | 1 +
src/gallium/drivers/softpipe/sp_screen.c | 1 +
src/gallium/drivers/svga/svga_screen.c | 1 +
src/gallium/drivers/vc4/vc4_screen.c | 1 +
src/gallium/include/pipe/p_defines.h | 1 +
src/mapi/glapi/gen/gl_API.xml | 7 +-
src/mesa/drivers/dri/i965/brw_compiler.c | 2 +-
src/mesa/main/extensions_table.h | 1 +
src/mesa/main/get.c | 1 +
src/mesa/main/get_hash_params.py | 4 +
src/mesa/main/mtypes.h | 14 +-
src/mesa/main/shaderapi.c | 3 +
src/mesa/program/prog_print.c | 4 +
src/mesa/state_tracker/st_extensions.c | 3 +-
src/mesa/state_tracker/st_program.c | 40 ++
45 files changed, 865 insertions(+), 609 deletions(-)
delete mode 100644 src/compiler/glsl/lower_clip_distance.cpp
create mode 100644 src/compiler/glsl/lower_distance.cpp
--
2.8.2
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev