Le Mon, 26 Jan 2009 12:30:21 -0700
Brian Paul <[email protected]> a écrit:

> Keith Whitwell wrote:
> > On Mon, 2009-01-26 at 10:10 -0800, Patrice Mandin wrote:
> >> Hello,
> >>
> >> [Excuse me if it's not the right place to talk about Gallium, is
> >> dri-devel a better place?]
> >>
> >> Last week I fixed a bug in nv30 gallium backend for nouveau, related to
> >> GL_EXT_blend_equation_separate (and not GL_EXT_blend_func_separate as I
> >> wrote in my commit), which seems to be a requirement for gallium
> >> drivers, as visible in gallium-0.2 branch,
> >> src/gallium/state_trackers/glx/dri/dri_extensions.c
> >>
> >> NV30 gpus (Geforce FX class) don't support it, so I would need to
> >> remove it from the extension list; and maybe make it a PIPE_CAP_???
> >> like some other OpenGL stuff.
> >>
> >> My question are: is the current list of extensions for Gallium backend
> >> fixed (specific requirements from some shader engines?), and must all
> >> backend support said extensions?
> >>
> > 
> > This is a bit of a missing chunk of functionality.
> > 
> > There are some queries that the pipe_screen interface exposes, and these
> > could/should be used by the Mesa state tracker to figure out which
> > extensions to turn on and off for a particular driver...  but currently,
> > we've just got some ugly bit of legacy code in each winsys which turns
> > on a fairly arbitary list.
> > 
> > Until the state tracker starts using queries to build the extension
> > list, this type of bug will be common.
> > 
> > If you're interested in figuring out how to do this, I think it'd be a
> > great contribution to Gallium.  I think this ties into but is not
> > necessarily dependent on the code I've got in state_trackers/glx/dri
> > which is a start on hoisting out a bunch of duplicated code from all the
> > dri winsys's.
> 
> Note that src/mesa/state_tracker/st_extensions.c has code which queries 
> the gallium screen to determine which GL extensions can be supported. 
> Perhaps that can be refactored and shared if the same thing is needed in 
> the GLX state tracker.
> 
> Feel free to add something like PIPE_CAP_SEPARATE_BLEND_EQUATION if you 
> need it, Patrice.

I just found some time to look at it again.

If I undefine stuff related to GL_EXT_blend_equation_separate in
src/gallium/state_trackers/dri/dri_extensions.c this is not enough.

When including src/mesa/drivers/dri/common/extension_helper.h
GL_EXT_blend_equation_separate extension is still defined because
need_GL_VERSION_2_0 is defined in dri_extensions.c gallium file.

In both 2.0 and 2.1 spec file I did not find anything saying
GL_EXT_blend_equation_separate was promoted to the core for 2.0, and
with Nvidia proprietary driver it's not defined also (version string is
2.1.2 in this case) as nv30 do not support it.

I don't know why enabling 2.0 stuff automatically enable
GL_EXT_blend_equation_separate, I guess there was a good reason, but I
don't think it should.

-- 
Patrice Mandin
WWW: http://pmandin.atari.org/
Programmeur Linux, Atari
Spécialité: Développement, jeux



------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to