Summary: | i945 support for compressed cubemaps is completely broken | ||
---|---|---|---|
Product: | Mesa | Reporter: | Steinar H. Gunderson <sgunderson> |
Component: | Drivers/DRI/i915 | Assignee: | Eric Anholt <eric> |
Status: | RESOLVED MOVED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Test case source code
Reference test case rendering i945 rendering of test case (Mesa 7.4.1) i945 rendering of test case (Mesa 7.4.1 + hack described in bug description) |
Created attachment 25762 [details]
Reference test case rendering
Created attachment 25763 [details]
i945 rendering of test case (Mesa 7.4.1)
Created attachment 25764 [details]
i945 rendering of test case (Mesa 7.4.1 + hack described in bug description)
Good afternoon Eric, Steinar, this is quite old (Mesa 7.4.1), is this case still valid with latest software? Thanks. I don't really have this hardware anymore. If you still care about it, you'd have to run the reference code and see. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/674. |
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.
Created attachment 25761 [details] Test case source code i945 hardware supports compressed cube maps. However, it seems like the texture memory layout completely forgets to handle the fact that they take up less memory. I've made a small test program (attached; basically the same as in bugs 21691 and 21692, only with DXT1 instead of uncompressed textures) that creates a 64x64 cubemap and renders all faces at all mip levels. reference-cubemap.png is what it looks like on ATI and nVidia (well, actually, that's a white lie; in reality the colors are slightly wrong since DXT1 is 565 instead of 888, but you get the general idea). i945-compressed-cubemap.png is what it looks like on my i945 with unmodified Mesa 7.4.1. i945-compressed-cubemap-with-hack.png is what it looks like if I change the call to intel_miptree_set_image_offset() in i945_miptree_layout_cube() from intel_miptree_set_image_offset(mt, level, face, x, y); to intel_miptree_set_image_offset(mt, level, face, x, y/4); Of course, it's a hack, and it still doesn't work properly for the lower mip levels (probably related to bugs 21690 and/or 21691), but at least it shows that the layout has to be adjusted for lower memory use.