On Mon, Aug 16, 2010 at 2:37 AM, nobled <nob...@dreamwidth.org> wrote:
> Except for the first patch, this is mostly adding a bunch of different > null checks: > > 1. r300g: Fix macro > This fixes a potential bug if (has_hyperz) is false (it would act as > if has_hyperz is true). > 2. r300g: Fix leaks in failed context creation > This patch is the biggest one: It refactors the create/destroy context > functions; before, if r300_create_context failed to allocate something > essential it was either ignored or it only partly cleaned up after > itself (ex: leaking all the allocations in r300_init_atoms(), > forgetting to decrement the number of existing contexts, leaking the > mutexes initialized by r300_hyperz_init_mm, etc), and there's a *lot* > to stuff to clean up, so this just re-uses the logic in > r300_destroy_context to avoid code duplication. > 3. r300g: Let hyperz init fail > Adds a boolean return value to check if the calls to u_mmInit failed > (they can potentially return null) > Pushed, thanks! > 4. gallium: Check if draw_create returns null > This changes all the drivers that depend on the draw module to abort > if draw_create returned null (which it might if using LLVM and on a > CPU without SSE2, or if it just couldn't allocate memory) > The r300g part is ok. Concerning the rest, I'd like to get a consent from the other driver maintainers. 5. draw: Check if llvm returns null > Always check for null and don't rely on assert(), since that won't > help on non-debug builds. Might also help with > http://bugs.freedesktop.org/29578 . > I think we should fall back to the non-LLVM path i.e. the slow, interpreted one. Luca has also sent an alternate fix: http://lists.freedesktop.org/archives/mesa-dev/2010-August/002124.html -Marek
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev