Summary: | [stencil_twoside] shadows wrong in doom3 | ||
---|---|---|---|
Product: | Mesa | Reporter: | Tobias Jakobi <liquid.acid> |
Component: | Mesa core | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | hramrach, jonjon.arnearne, pedretti.fabio |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Tobias Jakobi
2010-06-02 17:39:23 UTC
Forgot to mention my hardware: 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon HD 4770 [RV740] Are you saying this is a regression with the tiling patches? Does it render correctly without the tiling patches? Also, make sure you have the drm patch in bug 28327. (In reply to comment #2) > Are you saying this is a regression with the tiling patches? Does it render > correctly without the tiling patches? Also, make sure you have the drm patch > in bug 28327. Not a regression for me - doom 3 demo has never rendered shadows properly as long as I have been testing rv670. I thought it was a known issue and would maybe get better when shadowtex starts working. (In reply to comment #2) > Are you saying this is a regression with the tiling patches? Does it render > correctly without the tiling patches? Also, make sure you have the drm patch > in bug 28327. No, no - like Andy wrote this is no regression introduced by the tiling patches. The shadows are even wrong without tiling, but of course performance is worse then. Ok, updating the topic appropriately. Ok, sry - I see now, adding 'tiling' to the description was of course confusing :) I looked it a while back and if i remember correctly this went like: Doom uses ext_stencil_two_side if available There's 2 back stencil states: 1 opengl 2.0 2 ext_stencil_two_side Mesa sets ctx->Stencil._BackFace to 2 if GL_STENCIL_TEST_TWO_SIDE_EXT is enabled and to 1 otherwise - this is what r600 and also intel? uses Doom3 does some stencil setup while GL_STENCIL_TEST_TWO_SIDE_EXT disabled and the driver uses wrong values then The spec is imho also inconclusive but i read it as GL_STENCIL_TEST_TWO_SIDE_EXT should be 'tested' at rendering time and you can set up backface stencil state (via glActiveStencilFaceEXT) while this enable is not (yet) set. 2 options, use ctx->Stencil.ActiveFace in driver as in stencil.c or set ctx->Stencil._BackFace also to 2 in _mesa_ActiveStencilFaceEXT() I'm setting this to core mesa for comments Just wanted to retest this, but I can't even get ingame. After the level loading is done the app simply freezes. No messages in the kernel log. also replaced (r600, kms) with stencil_twoside in description Graphics look perfect now with r600g, I didn't bother to check with the classic driver. Since all major development effort currently goes into gallium, I'm resolving this one to fixed. |
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.