Summary: | piglit glean/depthStencil test core dumps with RV790 | ||
---|---|---|---|
Product: | Mesa | Reporter: | Chris Rankin <rankincj> |
Component: | Drivers/DRI/R600 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED WORKSFORME | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Chris Rankin
2010-03-17 15:36:44 UTC
I don't understand the "why" on this one, just that the SIGSEGV happens within the following WRITE_DEPTH macro: #define WRITE_DEPTH( _x, _y, d ) \ do { \ GLuint *_ptr = (GLuint*)r600_ptr_depth( rrb, _x + x_off, _y + y_off ); \ GLuint tmp = *_ptr; \ tmp &= 0xff000000; \ tmp |= ((d) & 0x00ffffff); \ *_ptr = tmp; \ _ptr = (GLuint*)r600_ptr_stencil(rrb, _x + x_off, _y + y_off); \ tmp = *_ptr; \ tmp &= 0xffffff00; \ tmp |= ((d) >> 24) & 0xff; \ *_ptr = tmp; \ } while (0) The exact location seems to be the second line, where the contents of _ptr are assigned to GLuint tmp. In my particular example, _x = 640, _y = 971 and d = 0 when it explodes. It might be worth noting that this is an x86_64 machine, although it's definitely SIGSEGV and not SIGBUS. Note: classic r600 driver has been abandoned. the glean/depthStencil test passes with r600g (gallium driver) on my rv770 tested with mesa git master 28f4be9eb91b12a2c6b1db6660cca71a98c486ec |
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.