Summary: | smooth shading and alpha shading mixed up in r300 | ||
---|---|---|---|
Product: | Mesa | Reporter: | James C. Georgas <jgeorgas> |
Component: | Drivers/DRI/r300 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | high | CC: | cryos, glisse, jlp.bugs, tehfoo |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
jpeg of expected correct rendering
jpeg of incorrect rendering |
Description
James C. Georgas
2006-09-14 07:08:58 UTC
Created attachment 6976 [details]
jpeg of expected correct rendering
This is how I expected the rendering to be done. Works with software rendering.
Created attachment 6977 [details]
jpeg of incorrect rendering
This is what I got with direct rendering enabled.
I'm seeing this as well. I forgot to mention that I patched mesa to disable some software fallbacks for smooth shading. There's a comment in r300_render.c that says that the hardware doesn't appear to support smooth line shading. However, I have seen it work, so I believe that to be incorrect, at least for my hardware. Here's the mesa patch, from phoronix's gentoo overlay: --- Mesa.orig/src/mesa/drivers/dri/r300/r300_render.c +++ Mesa/src/mesa/drivers/dri/r300/r300_render.c @@ -397,18 +397,18 @@ int r300Fallback(GLcontext *ctx) #endif if(!r300->disable_lowimpact_fallback){ - FALLBACK_IF(ctx->Polygon.OffsetPoint); // GL_POLYGON_OFFSET_POINT - FALLBACK_IF(ctx->Polygon.OffsetLine); // GL_POLYGON_OFFSET_LINE + //FALLBACK_IF(ctx->Polygon.OffsetPoint); // GL_POLYGON_OFFSET_POINT + //FALLBACK_IF(ctx->Polygon.OffsetLine); // GL_POLYGON_OFFSET_LINE //FALLBACK_IF(ctx->Stencil.Enabled); // GL_STENCIL_TEST //FALLBACK_IF(ctx->Polygon.SmoothFlag); // GL_POLYGON_SMOOTH disabling to get blender going FALLBACK_IF(ctx->Polygon.StippleFlag); // GL_POLYGON_STIPPLE FALLBACK_IF(ctx->Multisample.Enabled); // GL_MULTISAMPLE_ARB - FALLBACK_IF(ctx->Line.StippleFlag); + //FALLBACK_IF(ctx->Line.StippleFlag); /* HW doesnt appear to directly support these */ - FALLBACK_IF(ctx->Line.SmoothFlag); // GL_LINE_SMOOTH + //FALLBACK_IF(ctx->Line.SmoothFlag); // GL_LINE_SMOOTH FALLBACK_IF(ctx->Point.SmoothFlag); // GL_POINT_SMOOTH } Smooth line haven't yet been implemented in the driver. Well something weird is going on then, because it was working for me a couple of weeks ago, with the fallbacks disabled. I can't think of any explanation. Just to be orthodox, I removed the patch. My mesa now matches the CVS image, and I am using the "Disable Low-impact fallback" option in driconf to affect the same change. EDIT: The gentoo portage overlay mentioned earlier was done by primozic of the gentoo forums, not by phoronix. The patch mentioned earlier was by FieserKiller of the gentoo forums, and incorporated by primozic, into his overlay. Sorry for the mis-attribution. Where can I read about options like "Disable Low-impact fallback"? Is there any place with list of all of them? If you wan't a list of DRI configuration options for your card Then driconf will list them along with a short description. Though a more descriptive list might be in order. (In reply to comment #10) > Though a more descriptive list might be in order. If there's anything wrong with the built-in descriptions, I think it would be much better to fix it than to create a duplicated list. I am observing a very similar behaviour. Using the r300 driver on an X700 in an Acer Ferrari laptop. I could swear I had this working but now smooth shading is broken for triangles and it appears that the colour is not changed for the triangle vertices. I am working on Avogadro which uses much of this. Tried git as of a few hours ago and still no smooth shading and observing similar artifacts. This is on an amd64 but it looks like it is not dependent upon that. Can you reproduce it on current radeon-rewrite branch of mesa? It works for me. Mass version move, cvs -> git Closing due to lack of user input, also works for me on RV535 and RV380. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.