Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Jason Ekstrand
On Mon, Feb 4, 2019 at 6:43 PM Ilia Mirkin  wrote:

> On Mon, Feb 4, 2019 at 7:38 PM Jason Ekstrand 
> wrote:
> >
> > On Mon, Feb 4, 2019 at 6:25 PM Alyssa Rosenzweig 
> wrote:
> >>
> >> > Actually, I just gave you (Alyssa) push access... Also, as you'll (as
> >> > far as I understand) basically be owning the panfrost bits in mesa,
> >> > you should be able to commit to them.
> >>
> >> Oh, thank you! :)
> >>
> >> >  1. Don't break the build
> >>
> >> Acked-by: Alyssa Rosenzweig 
> >>
> >> >  2. No merge commits
> >>
> >> Just to be clear, is the idea to just make sure everything applies
> >> cleanly / is a straightforward fast-forward, and if not, to
> rebase/squash
> >> so it does?
> >
> >
> > Roughtly?  I really did mean "no merge commits" which really just means
> linear history.  Ideally, you'd have something that roughly linearly works
> but that's a Panfrost quality thing. I'm sure there will be regressions all
> over the place as you work given that it's still a bit prototypey.
>
> An important point here is "bisectable". You shouldn't have commits
> like "fix this totally broken earlier commit in the series". Breakage
> can happen -- that's a fact of life -- but you should avoid having
> "known" breaking commits, since that will mess up bisects down the
> line.
>

Right.  I just didn't want to sound too draconian because I know what the
crazy prototype world looks like.  That said, the more linearly working and
bisectable the better.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Alyssa Rosenzweig
Thanks :)
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Ilia Mirkin
On Mon, Feb 4, 2019 at 7:38 PM Jason Ekstrand  wrote:
>
> On Mon, Feb 4, 2019 at 6:25 PM Alyssa Rosenzweig  wrote:
>>
>> > Actually, I just gave you (Alyssa) push access... Also, as you'll (as
>> > far as I understand) basically be owning the panfrost bits in mesa,
>> > you should be able to commit to them.
>>
>> Oh, thank you! :)
>>
>> >  1. Don't break the build
>>
>> Acked-by: Alyssa Rosenzweig 
>>
>> >  2. No merge commits
>>
>> Just to be clear, is the idea to just make sure everything applies
>> cleanly / is a straightforward fast-forward, and if not, to rebase/squash
>> so it does?
>
>
> Roughtly?  I really did mean "no merge commits" which really just means 
> linear history.  Ideally, you'd have something that roughly linearly works 
> but that's a Panfrost quality thing. I'm sure there will be regressions all 
> over the place as you work given that it's still a bit prototypey.

An important point here is "bisectable". You shouldn't have commits
like "fix this totally broken earlier commit in the series". Breakage
can happen -- that's a fact of life -- but you should avoid having
"known" breaking commits, since that will mess up bisects down the
line.

Cheers,

  -ilia
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Jason Ekstrand
On Mon, Feb 4, 2019 at 6:25 PM Alyssa Rosenzweig 
wrote:

> > Actually, I just gave you (Alyssa) push access... Also, as you'll (as
> > far as I understand) basically be owning the panfrost bits in mesa,
> > you should be able to commit to them.
>
> Oh, thank you! :)
>
> >  1. Don't break the build
>
> Acked-by: Alyssa Rosenzweig 
>
> >  2. No merge commits
>
> Just to be clear, is the idea to just make sure everything applies
> cleanly / is a straightforward fast-forward, and if not, to rebase/squash
> so it does?
>

Roughtly?  I really did mean "no merge commits" which really just means
linear history.  Ideally, you'd have something that roughly linearly works
but that's a Panfrost quality thing. I'm sure there will be regressions all
over the place as you work given that it's still a bit prototypey.


> >  4. Don't commit code outside of Panfrost without review from someone who
> > has a decent claim to knowing what they're talking about in that area
>
> Acked-by: Alyssa Rosenzweig 
>
> >  5. Be nice and give stake-holders (who may not be in your time zone)
> > enough time to read their e-mail and review (at least 24 hours not
> > including week-ends) before pushing anything.
>
> Acked-by: Alyssa Rosenzweig 
>
> > Inside Panfrost, it's kind-of up to the Panfrost community developers
> what
> > you want to do about review.  If you've got enough people, I highly
> > recommend you do good code review.
>
> Downstream, we've been trying to enforce proper reivew. I review other
> people's code; I haggle people to review mine; you know how it is :)
>
> Thank you again!
>
> Alyssa
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Alyssa Rosenzweig
> Actually, I just gave you (Alyssa) push access... Also, as you'll (as
> far as I understand) basically be owning the panfrost bits in mesa,
> you should be able to commit to them.

Oh, thank you! :)

>  1. Don't break the build

Acked-by: Alyssa Rosenzweig 

>  2. No merge commits

Just to be clear, is the idea to just make sure everything applies
cleanly / is a straightforward fast-forward, and if not, to rebase/squash
so it does?

>  4. Don't commit code outside of Panfrost without review from someone who
> has a decent claim to knowing what they're talking about in that area

Acked-by: Alyssa Rosenzweig 

>  5. Be nice and give stake-holders (who may not be in your time zone)
> enough time to read their e-mail and review (at least 24 hours not
> including week-ends) before pushing anything.

Acked-by: Alyssa Rosenzweig 

> Inside Panfrost, it's kind-of up to the Panfrost community developers what
> you want to do about review.  If you've got enough people, I highly
> recommend you do good code review.

Downstream, we've been trying to enforce proper reivew. I review other
people's code; I haggle people to review mine; you know how it is :)

Thank you again!

Alyssa
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Jason Ekstrand
On Mon, Feb 4, 2019 at 3:13 PM Rob Herring  wrote:

> On Sun, Feb 3, 2019 at 9:33 PM Alyssa Rosenzweig 
> wrote:
> >
> > > You should just land it and start doing in-tree development!
> >
> > I don't have push access, you know :P
>
> I can push it if you don't want to go the MR route. That goes for
> subsequent changes too.
>

Actually, I just gave you (Alyssa) push access.  You haven't hit the usual
2-dozen commit threshold in mesa main yet but that's because you've been
working (very actively!) out-of-tree.  I figure you'll hit that threshold
very quickly once you start working in-tree.  Also, as you'll (as far as I
understand) basically be owning the panfrost bits in mesa, you should be
able to commit to them.  Please drink responsibly, don't run with scissors
(unless they're the GL kind), and remember a few basic merging rules:

 1. Don't break the build
 2. No merge commits
 3. Write good commit messages with reasonable prefixes (such as "panfrost:
Implement clip planes for vertex shaders")
 4. Don't commit code outside of Panfrost without review from someone who
has a decent claim to knowing what they're talking about in that area
 5. Be nice and give stake-holders (who may not be in your time zone)
enough time to read their e-mail and review (at least 24 hours not
including week-ends) before pushing anything.

Inside Panfrost, it's kind-of up to the Panfrost community developers what
you want to do about review.  If you've got enough people, I highly
recommend you do good code review.  If it's really just you hacking on the
compiler, then maybe review isn't practical.

Happy hacking and welcome to the mesa tree!

--Jason
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Rob Herring
On Sun, Feb 3, 2019 at 9:33 PM Alyssa Rosenzweig  wrote:
>
> > You should just land it and start doing in-tree development!
>
> I don't have push access, you know :P

I can push it if you don't want to go the MR route. That goes for
subsequent changes too.

Rob
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-04 Thread Jason Ekstrand



On February 3, 2019 21:33:39 Alyssa Rosenzweig  wrote:


You should just land it and start doing in-tree development!


I don't have push access, you know :P


Make a MR with all the acks on it and I'll click the button. I say MR 
because the full patch would be huge.


--Jason



___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-03 Thread Alyssa Rosenzweig
> You should just land it and start doing in-tree development!

I don't have push access, you know :P
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-03 Thread Jason Ekstrand
On Sun, Feb 3, 2019 at 6:18 PM Alyssa Rosenzweig 
wrote:

> > Small comment, you should plan on single build for all supported
> > generations.. I'm not entirely sure if this same header is eventually
> > planned to be #include'd from different C code w/ different defines
> > for gpu gen (afaict you just currently hard-code it at the top of this
> > header)..  But distro's will be unhappy if it comes to different mesa
> > builds for 8xx vs 6xx ;-)
>
> Yeah, that's a moderately high-prio item, only blocking on other things
> being more interesting ;)
>
> > Also, I guess for your sanity at some point you'll want to autogen
> > cmdstream encoding and decoding from a single source.  I get the
> > impression that envytools isn't the right thing for the bitpacked
> > format for mali cmdstream.  Maybe the intel thing is better?  But I
> > didn't get very far w/ a2xx r/e before I realized that keeping hand
> > coded decoding and encoding in sync sucked.
>
> Sure, but.. autogen from.. what? As you note, Mali's "cmdstream" is
> wacky and doesn't line up with the model assumed by most of these tools.
>
> Also, if I have to read/write XML, I might lose my sanity faster ;P
>
> > Anyways, totally fine w/ those details getting worked out in-tree,
> > after merging.
> >
> > Acked-by: Rob Clark 
>
> Thank you!
>
> (Is there any particular ack we're waiting for for pushing?)
>

I don't think so.  You've gotten enough buy-in from the community so far
that, if your build system and core (if any) changes aren't going to break
anything, you should just land it and start doing in-tree development!
Right after the 19.0 branch point (which was Wednesday) is a great time to
do it too because any small breakages won't cause any release problems.

--Jason
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-02-03 Thread Alyssa Rosenzweig
> Small comment, you should plan on single build for all supported
> generations.. I'm not entirely sure if this same header is eventually
> planned to be #include'd from different C code w/ different defines
> for gpu gen (afaict you just currently hard-code it at the top of this
> header)..  But distro's will be unhappy if it comes to different mesa
> builds for 8xx vs 6xx ;-)

Yeah, that's a moderately high-prio item, only blocking on other things
being more interesting ;)

> Also, I guess for your sanity at some point you'll want to autogen
> cmdstream encoding and decoding from a single source.  I get the
> impression that envytools isn't the right thing for the bitpacked
> format for mali cmdstream.  Maybe the intel thing is better?  But I
> didn't get very far w/ a2xx r/e before I realized that keeping hand
> coded decoding and encoding in sync sucked.

Sure, but.. autogen from.. what? As you note, Mali's "cmdstream" is
wacky and doesn't line up with the model assumed by most of these tools.

Also, if I have to read/write XML, I might lose my sanity faster ;P

> Anyways, totally fine w/ those details getting worked out in-tree,
> after merging.
> 
> Acked-by: Rob Clark 

Thank you!

(Is there any particular ack we're waiting for for pushing?)
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-01-31 Thread Alyssa Rosenzweig
> Doing merge commits for new drivers is not unheard of and preserves
> history (if the history is something you want to preserve).

The history downstream is a total mess (read: probably not bisectable),
and a lot of it was committed sloppily knowing it would get squished. So
thank you for offering, but I don't think anything of value is being
lost with these mega-patches :)
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-01-31 Thread Rob Clark
On Wed, Jan 30, 2019 at 12:43 AM Alyssa Rosenzweig  wrote:
>
> This patch adds an initial stub for the Gallium driver, containing
> simple screen functions and the majority of the driver headers but no
> actual functionality. It further adds the winsys glue for linking in
> this stub driver via kmsro on Rockchip/Amlogic boards.
>
> Signed-off-by: Alyssa Rosenzweig 
> ---
>  meson.build   |7 +-
>  meson_options.txt |2 +-
>  .../auxiliary/pipe-loader/pipe_loader_drm.c   |5 +
>  .../auxiliary/target-helpers/drm_helper.h |   23 +
>  .../target-helpers/drm_helper_public.h|3 +
>  src/gallium/drivers/panfrost/.editorconfig|3 +
>  .../drivers/panfrost/include/meson.build  |0
>  .../drivers/panfrost/include/panfrost-job.h   | 1481 +
>  .../drivers/panfrost/include/panfrost-misc.h  |   47 +
>  src/gallium/drivers/panfrost/meson.build  |   52 +
>  src/gallium/drivers/panfrost/pan_allocate.h   |  123 ++
>  src/gallium/drivers/panfrost/pan_context.h|  362 
>  src/gallium/drivers/panfrost/pan_public.h |   41 +
>  src/gallium/drivers/panfrost/pan_resource.h   |   85 +
>  src/gallium/drivers/panfrost/pan_screen.c |  702 
>  src/gallium/drivers/panfrost/pan_screen.h |   88 +
>  src/gallium/meson.build   |6 +
>  src/gallium/targets/dri/meson.build   |5 +-
>  src/gallium/targets/dri/target.c  |   10 +
>  .../winsys/kmsro/drm/kmsro_drm_winsys.c   |   25 +
>  src/gallium/winsys/kmsro/drm/meson.build  |3 +
>  src/gallium/winsys/panfrost/drm/Android.mk|   33 +
>  src/gallium/winsys/panfrost/drm/Makefile.am   |   33 +
>  .../winsys/panfrost/drm/Makefile.sources  |3 +
>  src/gallium/winsys/panfrost/drm/meson.build   |   29 +
>  .../winsys/panfrost/drm/panfrost_drm_public.h |   36 +
>  .../winsys/panfrost/drm/panfrost_drm_winsys.c |   42 +
>  27 files changed, 3244 insertions(+), 5 deletions(-)
>  create mode 100644 src/gallium/drivers/panfrost/.editorconfig
>  create mode 100644 src/gallium/drivers/panfrost/include/meson.build
>  create mode 100644 src/gallium/drivers/panfrost/include/panfrost-job.h
>  create mode 100644 src/gallium/drivers/panfrost/include/panfrost-misc.h
>  create mode 100644 src/gallium/drivers/panfrost/meson.build
>  create mode 100644 src/gallium/drivers/panfrost/pan_allocate.h
>  create mode 100644 src/gallium/drivers/panfrost/pan_context.h
>  create mode 100644 src/gallium/drivers/panfrost/pan_public.h
>  create mode 100644 src/gallium/drivers/panfrost/pan_resource.h
>  create mode 100644 src/gallium/drivers/panfrost/pan_screen.c
>  create mode 100644 src/gallium/drivers/panfrost/pan_screen.h
>  create mode 100644 src/gallium/winsys/panfrost/drm/Android.mk
>  create mode 100644 src/gallium/winsys/panfrost/drm/Makefile.am
>  create mode 100644 src/gallium/winsys/panfrost/drm/Makefile.sources
>  create mode 100644 src/gallium/winsys/panfrost/drm/meson.build
>  create mode 100644 src/gallium/winsys/panfrost/drm/panfrost_drm_public.h
>  create mode 100644 src/gallium/winsys/panfrost/drm/panfrost_drm_winsys.c
>

[snip]

> diff --git a/src/gallium/drivers/panfrost/include/panfrost-job.h 
> b/src/gallium/drivers/panfrost/include/panfrost-job.h
> new file mode 100644
> index 00..dbb5486bfa
> --- /dev/null
> +++ b/src/gallium/drivers/panfrost/include/panfrost-job.h
> @@ -0,0 +1,1481 @@
> +/*
> + * © Copyright 2017-2018 Alyssa Rosenzweig
> + * © Copyright 2017-2018 Connor Abbott
> + * © Copyright 2017-2018 Lyude Paul
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
> FROM,
> + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
> THE
> + * SOFTWARE.
> + *
> + */
> +
> +#ifndef __PANFROST_JOB_H__
> +#define __PANFROST_JOB_H__
> +
> +#include 
> +#include 
> +
> +#define T8XX
> +
> +#define MALI_SHORT_PTR_BITS (sizeof(uintptr_t)*8)
> +
> +#define MALI_FBD_HIERARCHY_WEIGHTS 

Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-01-31 Thread Jason Ekstrand
On Thu, Jan 31, 2019 at 10:36 AM Eric Anholt  wrote:

> Alyssa Rosenzweig  writes:
>
> >> There's u_pipe_screen_get_param_defaults() that you really want to be
> >> using to avoid regressions when people add new pipe caps.  You can get
> >> rid of a lot of your switch statement that way, too.
> >
> > Oh, good to know. Is that newer? I'm pretty sure that whole block was
> > copied from vc4 at some point ;)
> >
> >> We should probably be sticking the kmsro entrypoints in a shared group,
> >> since there's nothing specific for the KMS .  Looks like we haven't been
> >> doing that, though.
> >
> > Yeah, I had the same thought, but I didn't want to disrupt other drivers
> > yet (since that delays merge due to pinging more people).
> >
> >> These are both things we can change later.  I'm mostly excited to see
> >> you finally in-tree!
>

Hear, Hear!  Whatever merge/patch you do is

Acked-by: Jason Ekstrand 

It's about time!


> > ^_^
> >
> > Should either of the above issues be resolved in a v2 now, or just a
> > follow-up patch after merging?
>
> Follow-up, imo.  New drivers have a long awkward period where they
> wouldn't pass review the way we would for incremental development, but
> continuing to work out-of-tree means rebase pain and losing git history.
>
> (If you have git history out of tree that you'd like to retain when
> merging in, I'm happy to try helping with that.  I've done fun git
> surgery before)
>

Doing merge commits for new drivers is not unheard of and preserves history
(if the history is something you want to preserve).

--Jason
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-01-31 Thread Eric Anholt
Alyssa Rosenzweig  writes:

>> There's u_pipe_screen_get_param_defaults() that you really want to be
>> using to avoid regressions when people add new pipe caps.  You can get
>> rid of a lot of your switch statement that way, too.
>
> Oh, good to know. Is that newer? I'm pretty sure that whole block was
> copied from vc4 at some point ;)
>
>> We should probably be sticking the kmsro entrypoints in a shared group,
>> since there's nothing specific for the KMS .  Looks like we haven't been
>> doing that, though.
>
> Yeah, I had the same thought, but I didn't want to disrupt other drivers
> yet (since that delays merge due to pinging more people).
>
>> These are both things we can change later.  I'm mostly excited to see
>> you finally in-tree!
>
> ^_^
>
> Should either of the above issues be resolved in a v2 now, or just a
> follow-up patch after merging?

Follow-up, imo.  New drivers have a long awkward period where they
wouldn't pass review the way we would for incremental development, but
continuing to work out-of-tree means rebase pain and losing git history.

(If you have git history out of tree that you'd like to retain when
merging in, I'm happy to try helping with that.  I've done fun git
surgery before)


signature.asc
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-01-31 Thread Alyssa Rosenzweig
> There's u_pipe_screen_get_param_defaults() that you really want to be
> using to avoid regressions when people add new pipe caps.  You can get
> rid of a lot of your switch statement that way, too.

Oh, good to know. Is that newer? I'm pretty sure that whole block was
copied from vc4 at some point ;)

> We should probably be sticking the kmsro entrypoints in a shared group,
> since there's nothing specific for the KMS .  Looks like we haven't been
> doing that, though.

Yeah, I had the same thought, but I didn't want to disrupt other drivers
yet (since that delays merge due to pinging more people).

> These are both things we can change later.  I'm mostly excited to see
> you finally in-tree!

^_^

Should either of the above issues be resolved in a v2 now, or just a
follow-up patch after merging?


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] panfrost: Initial stub for Panfrost driver

2019-01-31 Thread Eric Anholt
Alyssa Rosenzweig  writes:

> This patch adds an initial stub for the Gallium driver, containing
> simple screen functions and the majority of the driver headers but no
> actual functionality. It further adds the winsys glue for linking in
> this stub driver via kmsro on Rockchip/Amlogic boards.

> +static int
> +panfrost_get_param(struct pipe_screen *screen, enum pipe_cap param)
> +{
> +switch (param) {
> +case PIPE_CAP_NPOT_TEXTURES:
> +case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
> +case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
> +return 1;
> +
> +case PIPE_CAP_SM3:
> +return 1;
> +
> +case PIPE_CAP_POINT_SPRITE:
> +return 1;
> +
> +case PIPE_CAP_MAX_RENDER_TARGETS:
> +return PIPE_MAX_COLOR_BUFS;
> +
> +case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
> +return 1;
> +
> +case PIPE_CAP_OCCLUSION_QUERY:
> +case PIPE_CAP_QUERY_TIME_ELAPSED:
> +case PIPE_CAP_QUERY_PIPELINE_STATISTICS:
> +return 1; /* TODO: Queries */
> +
> +case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
> +return 1;
> +
> +case PIPE_CAP_TEXTURE_SWIZZLE:
> +return 1;
> +
> +case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
> +return 0;
> +
> +case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
> +case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
> +case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
> +return 13;
> +
> +case PIPE_CAP_BLEND_EQUATION_SEPARATE:
> +return 1;
> +
> +case PIPE_CAP_INDEP_BLEND_ENABLE:
> +return 1;
> +
> +case PIPE_CAP_INDEP_BLEND_FUNC:
> +return 1;
> +
> +case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
> +case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
> +case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
> +case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
> +return 1;
> +
> +case PIPE_CAP_DEPTH_CLIP_DISABLE:
> +return 1;
> +
> +case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
> +return 0; /* no streamout */
> +
> +case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
> +case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
> +return 16 * 4;
> +
> +case PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES:
> +case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS:
> +return 1024;
> +
> +case PIPE_CAP_MAX_VERTEX_STREAMS:
> +return 1;
> +
> +case PIPE_CAP_PRIMITIVE_RESTART:
> +return 0; /* We don't understand this yet */
> +
> +case PIPE_CAP_SHADER_STENCIL_EXPORT:
> +return 1;
> +
> +case PIPE_CAP_TGSI_INSTANCEID:
> +case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
> +case PIPE_CAP_START_INSTANCE:
> +return 0; /* TODO: Instances */
> +
> +case PIPE_CAP_SEAMLESS_CUBE_MAP:
> +case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
> +return 1;
> +
> +case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS:
> +return 256; /* for GL3 */
> +
> +case PIPE_CAP_MIN_TEXEL_OFFSET:
> +return -8;
> +
> +case PIPE_CAP_MAX_TEXEL_OFFSET:
> +return 7;
> +
> +case PIPE_CAP_CONDITIONAL_RENDER:
> +return 1;
> +
> +case PIPE_CAP_TEXTURE_BARRIER:
> +return 0;
> +
> +case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:
> +case PIPE_CAP_VERTEX_COLOR_UNCLAMPED: /* draw module */
> +case PIPE_CAP_VERTEX_COLOR_CLAMPED: /* draw module */
> +return 1;
> +
> +case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
> +return 0;
> +
> +case PIPE_CAP_GLSL_FEATURE_LEVEL:
> +return 330;
> +
> +case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
> +case PIPE_CAP_TGSI_TEX_TXF_LZ:
> +return 0;
> +
> +case PIPE_CAP_COMPUTE:
> +return 0;
> +
> +case PIPE_CAP_USER_VERTEX_BUFFERS: /* XXX XXX */
> +case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
> +return 0;
> +
> +case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
> +case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
> +case PIPE_CAP_TGSI_VS_LAYER_VIEWPORT:
> +case PIPE_CAP_DOUBLES:
> +case PIPE_CAP_INT64:
> +case PIPE_CAP_INT64_DIVMOD:
> +return 1;
> +
> +case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
> +return 16;
> +
> +case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
> +case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:
> +case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
> +case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:
> +case PIPE_CAP_TEXTURE_MULTISAMPLE:
> +return