On Saturday 26 December 2009 02:19:40 Marek Olšák wrote: > Zack, > > to be honest, Direct3D 11 can report geometry shaders are not supported > through so-called feature levels. There are six levels to my knowledge > (9_1, 9_2, 9_3, 10_0, 10_1, 11_0). i915 is 9_1, R300 is 9_2, R500 is 9_3, > and so on. Direct3D 11 is indeed accelerated on those pieces of hardware > and, though the feature set is a little limited, the hardware support is > covered well. Is Direct3D 11 generations past because of that? No, it > isn't. > > Let's say I have R500 and I want to use geometry shaders in Direct3D 11. > What are my options? I can't use my R500 and I must manually switch to the > device called WARP (Windows Advanced Rasterization Platform), which > reports the 10_1 feature level. This kind of device is very similar to > llvmpipe in Gallium. > > In the past you said we should do it the same way as Direct3D, so why > should Gallium be different now?
I think you're using "it" a bit broadly here because we never had a discussion about caps. First of all Gallium3D is already different when it comes to capabilities reporting. We have a buttload of caps, realistically speaking most of them are likely tight together. What we do right now is what d3d9 used to do which is what everyone agreed is awful. Not to mention that we don't have an option of actually selecting llvmpipe vs whatever hardware driver by hand. The argument that would certainly make sense is one for moving Gallium3D caps model towards a shader-model reporting. e.g. shader-model 2.x, 3.x, 4.x, 5.x versus every single feature that they bring forward, e.g. 4.x implies geometry shader, 5.x implies tessellation/compute. I absolutely abhor the idea of reporting as a cap everything above of what i915 or r300 can do, for the lack of better wording it's just ridicules. I do think though that we should look at our caps bits and come up with something better. > Moreover, if applications decide to use geometry shaders to emulate point > sprites or wide lines, we'll be screwed. If the hardware doesn't implement those features they'll be in the draw module anyway. So it's really draw module vs draw module. > If they decide to do texture fetches in geometry shaders, we'll be screwed > even more because we'll have to move textures out of VRAM and that will be > a total performance killer. So I agree with Corbin that the CAP for > geometry shaders should be added and we should let drivers decide what's > best for them. How is that different from the same problem applied to a vertex shader on i915 and the ways that works right now? I agree that we need to solve that problems, but I just refuse that the best we can is "everything above i915 is a feature cap". We need to come up with a scheme that actually works or assume it's ok for draw module to handle some of those features. For us it likely should be some combination of API and shader-model support (shader-models don't tell us anything about gl specific features like shadow samplers or aa lines/points), if we can figure out we can reasonable handle that we'll be fine. z ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev