Summary: | [Bisected i965]Oglc max_values(advanced.fragmentProgram.GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB) causes OOM-killer | ||
---|---|---|---|
Product: | Mesa | Reporter: | lu hua <huax.lu> |
Component: | Drivers/DRI/i965 | Assignee: | Eric Anholt <eric> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | medium | CC: | idr, pavel.ondracka, xunx.fang |
Version: | git | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | dmesg |
Description
lu hua
2012-10-10 07:43:36 UTC
This will probably be WONTFIX, but I'll leave it open for a while in case I find something easy to trim. Was this fixed by 014aaa9? commit 014aaa97d3d7f78629e6e030953be0e9fb7f33dd Author: Eric Anholt <eric@anholt.net> Date: Fri Sep 21 16:04:52 2012 +0200 i965: Reduce maximum GL_ARB_fragment_program instruction count to 1024. I don't know of any programs that would need more than this. The larger programs I've seen have neared 100 instructions. This prevent excessive runtimes of automatic tests that attempt to test up to the exposed maximums (like fp-long-alu). Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> It still happens on commit: 017c6fb324194ba1c2e15fbee2f85a2fd8f140c4. massif output: 35 126,618,636,882 5,441,331,072 5,438,065,485 3,265,587 0 99.94% (5,438,065,485B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. ->99.52% (5,415,162,158B) 0x8AD7BE6: ralloc_size (ralloc.c:109) | ->79.01% (4,299,424,756B) 0x8A5A03C: ra_alloc_interference_graph (register_allocate.c:329) | | ->79.01% (4,299,424,756B) 0x865EC78: fs_visitor::assign_regs() (brw_fs_reg_allocate.cpp:410) | | | ->79.01% (4,299,424,756B) 0x8647796: fs_visitor::run() (brw_fs.cpp:1951) Commit 97615b2d8c7c3cea6fd3a43bcb1739a96e2046c4 also causes following piglit failures on my GM45: ./bin/shader_runner tests/spec/arb_fragment_program_shadow/tex-shadow2drect.shader_test -auto Output: Probe at (0,25) Expected: 1.000000 1.000000 1.000000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe at (225,249) Expected: 1.000000 1.000000 1.000000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 ./bin/shader_runner tests/spec/arb_fragment_program_shadow/txp-shadow2drect.shader_test -auto Output: Probe at (0,25) Expected: 1.000000 1.000000 1.000000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe at (225,249) Expected: 1.000000 1.000000 1.000000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Should this have its own bug? (In reply to comment #1) > This will probably be WONTFIX, but I'll leave it open for a while in case I > find something easy to trim. Can you justify WONTFIX? Shall we keep it as high priority bug? It still happens on latest mesa master and 9.1 branch. Patch series is out on the mailing list. Memory usage of this testcase goes from 4gb to 255MB. commit 11b8df0c0141c5759025985ba99e782a2dfd720c Author: Eric Anholt <eric@anholt.net> Date: Tue Feb 19 17:01:41 2013 -0800 mesa: Reduce memory usage for reg alloc with many graph nodes (part 2). After the previous fix that almost removes an allocation of 4*n^2 bytes, we can use a bitset to reduce another allocation from n^2 bytes to n^2/8 bytes. Between the previous commit and this one, the peak heap size for an oglconform ARB_fragment_program max instructions test on i965 goes from 4GB to 255MB. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55825 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Before you ask, I'm not planning on pulling this to stable. It fixed on mesa master branch, still exists on 9.1 branch. Verified. 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.