Bug 35312 - r600g: Automatic mipmap generation doesn't work properly
r600g: Automatic mipmap generation doesn't work properly
Status: RESOLVED FIXED
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600
git
Other All
: medium normal
Assigned To: Default DRI bug account
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-03-14 13:04 UTC by Gustaw Smolarczyk
Modified: 2011-05-11 09:15 UTC (History)
0 users

See Also:


Attachments
short patch to test problem (576 bytes, patch)
2011-04-13 22:36 UTC, Francis Whittle
Details | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Gustaw Smolarczyk 2011-03-14 13:04:34 UTC
Automatic mipmap generation using glGenerateMipmap (util_gen_mipmap) fills mipmaps with wrong rendering. Piglit tests fbo-generatemipmap* are failing. Software fallback works properly, as does llvmpipe.

Hardware:
rv670 (HD3870), amd64
Software:
kernel 2.6.38rc8, mesa from git, libdrm from git
Comment 1 Francis Whittle 2011-04-13 22:36:09 UTC
Created attachment 45598 [details] [review]
short patch to test problem

Can you try this patch to mesa and say if it fixes the issue?
Comment 2 Gustaw Smolarczyk 2011-04-15 00:40:53 UTC
Indeed it helps. Piglit test fbo-generatemipmap-formats is still failing, but may be unrelated problem. Basic functionality now works properly.
Comment 3 Andy Furniss 2011-04-15 04:30:30 UTC
(In reply to comment #1)
> Created an attachment (id=45598) [details]
> short patch to test problem
> 
> Can you try this patch to mesa and say if it fixes the issue?

It also fixes a rv670 lodbias regression -

https://bugs.freedesktop.org/show_bug.cgi?id=35367
Comment 4 Francis Whittle 2011-04-16 00:08:05 UTC
Patch is strictly a work-around and a bloody hack (dripping even).  Indicates there's something should be happening in the driver code that isn't.  "Fixes" was a bad word choice.

Anyway, I can confirm this bug on RS880 (Radeon HD 4200).
Comment 6 Francis Whittle 2011-05-11 02:00:42 UTC
Still doesn't work on RS880 until it's added to the conditional on line 813 of r600_hw_context.c

I wonder if this should apply to rv620, rv635 (and rs780?) also?
Comment 7 Alex Deucher 2011-05-11 09:15:29 UTC
fixed in b9f2750900efb2667bc1dfc428b71d8a08b212be.

rv610/630/620/635 all work fine without the additional hack.