From: Tobias Klausmann <tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
To: Ilia Mirkin <imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org>
Cc: "nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
<nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
"Marek Olšák" <maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [RFC PATCH 00/11] Implement ARB_cull_distance
Date: Sun, 24 May 2015 21:56:48 +0200 [thread overview]
Message-ID: <55622D00.4000308@mni.thm.de> (raw)
In-Reply-To: <CAKb7Uvgby-ycm5rQJWNJmC-4hkB2L9msgOiGh0YXNTBj+2-yaQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On 24.05.2015 21:36, Ilia Mirkin wrote:
> On Sun, May 24, 2015 at 3:30 PM, Tobias Klausmann
> <tobias.johannes.klausmann@mni.thm.de> wrote:
>>
>> On 24.05.2015 20:25, Ilia Mirkin wrote:
>>> I'm having a bit of trouble tracing through this. What happens if I
>>> have a shader that just does:
>>>
>>> gl_ClipDistance[0] = 1;
>>> gl_CullDistance[0] = 1;
>>>
>>> what does the resulting TGSI look like? (Assuming that clip plane 0 is
>>> enabled.) What about the generated nvc0 code (for the vertex shader)?
>>
>> (hack up a patch for this, run it without DRI_PRIME=1, see i pass and forget
>> to check it again)
>> yeah those are equal, sorry for wasting your time on this :/
> Not a waste at all... let's ignore any shortcomings of your patches
> for a second, and think it through -- what do you want the TGSI to
> look like? I'm not even sure.
>
> Do you want to have a separate 2x CLIPDIST and 2x CULLDIST and let the
> driver worry about figuring out the max clip dist used and sticking
> the cull dists above it? Or do you want to work it out at a lower
> level where they share a single CLIPORCULLDIST semantic and get a
> separate e.g. shader property that gives them the mask?
>
> I don't know how other hardware works, but nv50/nvc0 hw has 8
> clip_or_cull distances, and a mask that selects whether each is a clip
> or a cull distance. But perhaps other hw has them totally separate,
> dunno.
With my limited experience about other hardware i'd go with seperate
clip/cull and let the drivers figure out the right way to place them.
That gives us the freedom to have it the way nv50/nvc0 works and other
ways, like seperated clip/cull_distances if needed. Maybe we should just
consider nouveau and radeon and decide by the hw of these often used
drivers.
Marek any comments on how the various radeons work?
>
>>
>>> On Sun, May 24, 2015 at 1:57 PM, Tobias Klausmann
>>> <tobias.johannes.klausmann@mni.thm.de> wrote:
>>>> This patch series adds the needed support for this extension to the
>>>> various
>>>> parts of mesa to finally enable it for nvc0.
>>>>
>>>> Dave Airlie (1):
>>>> glsl: lower cull_distance into cull_distance_mesa
>>>>
>>>> Tobias Klausmann (10):
>>>> glapi: add GL_ARB_cull_distance
>>>> mesa/main: add support for GL_ARB_cull_distance
>>>> mesa/prog: Add varyings for arb_cull_distance
>>>> mesa/st: add support for GL_ARB_cull_distance
>>>> glsl: Add a helper to see if an array was unsize in the shader
>>>> glsl: Add arb_cull_distance support
>>>> i965: rename UsesClipDistanceOut to UsesClipCullDistanceOut
>>>> gallium: add support for arb_cull_distance
>>>> nouveau/codegen: sort in galliums cull_distance semantic into the
>>>> drivers bitmask
>>>> nouveau/nvc0: implement cull_distance as a special form of clip
>>>> distance
>>>>
>>>> docs/GL3.txt | 2 +-
>>>> docs/relnotes/10.7.0.html | 4 +-
>>>> src/gallium/auxiliary/cso_cache/cso_context.c | 3 +
>>>> 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 | 5 +
>>>> 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 | 6 +-
>>>> src/gallium/drivers/nouveau/nvc0/nvc0_program.h | 1 +
>>>> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 +
>>>> .../drivers/nouveau/nvc0/nvc0_state_validate.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 | 2 +
>>>> 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/glsl/Makefile.sources | 1 +
>>>> src/glsl/ast_to_hir.cpp | 14 +
>>>> src/glsl/builtin_variables.cpp | 13 +-
>>>> src/glsl/glcpp/glcpp-parse.y | 3 +
>>>> src/glsl/glsl_parser_extras.cpp | 1 +
>>>> src/glsl/glsl_parser_extras.h | 3 +
>>>> src/glsl/glsl_types.cpp | 8 +-
>>>> src/glsl/glsl_types.h | 10 +-
>>>> src/glsl/ir_optimization.h | 1 +
>>>> src/glsl/link_varyings.cpp | 17 +-
>>>> src/glsl/link_varyings.h | 3 +-
>>>> src/glsl/linker.cpp | 124 +++--
>>>> src/glsl/lower_cull_distance.cpp | 549
>>>> +++++++++++++++++++++
>>>> src/glsl/standalone_scaffolding.cpp | 1 +
>>>> src/glsl/tests/varyings_test.cpp | 27 +
>>>> src/mapi/glapi/gen/gl_API.xml | 7 +-
>>>> src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 2 +-
>>>> src/mesa/drivers/dri/i965/brw_gs.c | 2 +-
>>>> src/mesa/drivers/dri/i965/brw_vec4.cpp | 2 +-
>>>> src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 2 +-
>>>> src/mesa/drivers/dri/i965/brw_vs.c | 2 +-
>>>> src/mesa/main/extensions.c | 1 +
>>>> src/mesa/main/get.c | 26 +
>>>> src/mesa/main/get_hash_params.py | 4 +
>>>> src/mesa/main/mtypes.h | 22 +-
>>>> src/mesa/main/shaderapi.c | 4 +-
>>>> src/mesa/main/tests/enum_strings.cpp | 2 +
>>>> src/mesa/program/prog_print.c | 4 +
>>>> src/mesa/state_tracker/st_extensions.c | 4 +
>>>> src/mesa/state_tracker/st_program.c | 34 ++
>>>> 51 files changed, 859 insertions(+), 72 deletions(-)
>>>> create mode 100644 src/glsl/lower_cull_distance.cpp
>>>>
>>>> --
>>>> 2.4.1
>>>>
>>>> _______________________________________________
>>>> Nouveau mailing list
>>>> Nouveau@lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/nouveau
>>
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau
next prev parent reply other threads:[~2015-05-24 19:56 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-24 17:57 [RFC PATCH 00/11] Implement ARB_cull_distance Tobias Klausmann
2015-05-24 17:58 ` [PATCH 03/11] mesa/prog: Add varyings for arb_cull_distance Tobias Klausmann
2015-05-24 17:58 ` [PATCH 04/11] mesa/st: add support for GL_ARB_cull_distance Tobias Klausmann
2015-05-24 18:12 ` Marek Olšák
[not found] ` <CAAxE2A5TdLJaNfeoHE7Rrf-R80KTRbj_dtVN-cTd3K-_BfcPGg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 19:33 ` [Mesa-dev] " Tobias Klausmann
[not found] ` <1432490289-29353-1-git-send-email-tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-05-24 17:57 ` [PATCH 01/11] glapi: add GL_ARB_cull_distance Tobias Klausmann
2015-05-24 17:58 ` [PATCH 02/11] mesa/main: add support for GL_ARB_cull_distance Tobias Klausmann
2015-05-24 18:11 ` [Nouveau] " Ilia Mirkin
[not found] ` <CAKb7Uvj=Q38BPUqyaUAwFfptMC4BV2p3fXLrOGak1+kwD4LTBQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 19:33 ` Tobias Klausmann
2015-05-24 17:58 ` [PATCH 05/11] glsl: Add a helper to see if an array was unsize in the shader Tobias Klausmann
2015-05-24 17:58 ` [PATCH 06/11] glsl: lower cull_distance into cull_distance_mesa Tobias Klausmann
2015-05-24 18:09 ` Marek Olšák
2015-05-24 17:58 ` [PATCH 07/11] glsl: Add arb_cull_distance support Tobias Klausmann
2015-05-24 22:34 ` Timothy Arceri
[not found] ` <1432506893.11443.2.camel-/E1597aS9LT0CCvOHzKKcA@public.gmane.org>
2015-05-24 22:46 ` [Mesa-dev] " Tobias Klausmann
2015-05-24 23:19 ` Timothy Arceri
2015-05-24 17:58 ` [PATCH 08/11] i965: rename UsesClipDistanceOut to UsesClipCullDistanceOut Tobias Klausmann
2015-05-24 17:58 ` [PATCH 10/11] nouveau/codegen: sort in galliums cull_distance semantic into the drivers bitmask Tobias Klausmann
2015-05-24 19:38 ` Ilia Mirkin
2015-05-24 17:58 ` [PATCH 11/11] nouveau/nvc0: implement cull_distance as a special form of clip distance Tobias Klausmann
2015-05-24 18:25 ` [RFC PATCH 00/11] Implement ARB_cull_distance Ilia Mirkin
[not found] ` <CAKb7UvjqEq9M639ZXhFeLqPjEVcP5Zfqc_Df7yjBA34ww70jMQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 19:30 ` Tobias Klausmann
[not found] ` <556226F1.8020502-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-05-24 19:36 ` Ilia Mirkin
[not found] ` <CAKb7Uvgby-ycm5rQJWNJmC-4hkB2L9msgOiGh0YXNTBj+2-yaQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-24 19:56 ` Tobias Klausmann [this message]
[not found] ` <55622D00.4000308-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-05-24 22:11 ` Marek Olšák
[not found] ` <CAAxE2A4Zc3G+Rw9VcaAcXj24RJvZsBY1hW6RDA=Mt+aO6s2nKw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-25 5:17 ` Dave Airlie
[not found] ` <CAPM=9tzeBhg-srEZgud4p3AUx59GAA7ogastm7Jy8erq1-0zzw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-25 13:40 ` Tobias Klausmann
[not found] ` <5563264B.4010008-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-05-25 15:07 ` Ilia Mirkin
[not found] ` <CAKb7Uvj3CP3wBA1mWLhTdt-9RJRemHKYwqezOKD=GTw6zFOsbg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-27 16:28 ` Marek Olšák
[not found] ` <CAAxE2A6=9rK3XuJTexcg-dj0F_NWXHisg9OMv99mMvZ-4E2nVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-27 19:05 ` Tobias Klausmann
[not found] ` <55661597.30809-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-05-27 22:51 ` Marek Olšák
[not found] ` <CAAxE2A78arFZdv1caKK_viR+AYydCyD45ENmTzw3M3cfLqLzhg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-27 23:02 ` Ilia Mirkin
2015-07-08 20:04 ` Tobias Klausmann
[not found] ` <559D823F.7070309-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-07-08 20:06 ` Ilia Mirkin
[not found] ` <CAKb7Uvj8qEKOZGap9H72cWMR8PwD_j15Fjxiew3MQR33ZsZ6Ww-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-09 0:35 ` Marek Olšák
2015-05-24 17:58 ` [PATCH 09/11] gallium: add support for arb_cull_distance Tobias Klausmann
2015-05-25 18:36 ` Roland Scheidegger
2015-05-25 18:56 ` Tobias Klausmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55622D00.4000308@mni.thm.de \
--to=tobias.johannes.klausmann-aqjdnwhu20eelga04laivw@public.gmane.org \
--cc=imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org \
--cc=maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.