szeged / webrender

A GPU-based renderer for the web
https://doc.servo.org/webrender/
Mozilla Public License 2.0
45 stars 7 forks source link

Crash with OutOfDeviceMemory in Gecko. #298

Closed zakorgy closed 5 years ago

zakorgy commented 5 years ago

We still have a Gecko version which is compatible with our WR version, and can use it to run MotionMark test to measure performance changes. With our latest master (f60f89717d0a3da7d82612b82deae07416b23461) after a few minutes of run we have the following crash with Vulkan on Linux:

ERROR 2019-07-04T08:04:30Z: rendy_memory::heaps: All suitable heaps are exhausted. Heaps {
    types: [
        MemoryType {
            heap_index: 0,
            properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
            dedicated: DedicatedAllocator {
                memory_type: MemoryTypeId(
                    0,
                ),
                memory_properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
                used: 14737428,
            },
            linear: Some(
                LinearAllocator {
                    memory_type: MemoryTypeId(
                        0,
                    ),
                    memory_properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
                    linear_size: 536870912,
                    offset: 0,
                    lines: [],
                },
            ),
            dynamic: Some(
                DynamicAllocator {
                    memory_type: MemoryTypeId(
                        0,
                    ),
                    memory_properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
                    block_size_granularity: 256,
                    max_chunk_size: 33554432,
                    min_device_allocation: 8388608,
                    sizes: {},
                    chunks: {},
                },
            ),
            used: 14737428,
            effective: 14737428,
        },
        MemoryType {
            heap_index: 1,
            properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
            dedicated: DedicatedAllocator {
                memory_type: MemoryTypeId(
                    1,
                ),
                memory_properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
                used: 11059200,
            },
            linear: Some(
                LinearAllocator {
                    memory_type: MemoryTypeId(
                        1,
                    ),
                    memory_properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
                    linear_size: 536870912,
                    offset: 0,
                    lines: [
                        Line {
                            used: 402653184,
                            free: 0,
                            ptr: 0x00007f6084f00000,
                        },
                    ],
                },
            ),
            dynamic: Some(
                DynamicAllocator {
                    memory_type: MemoryTypeId(
                        1,
                    ),
                    memory_properties: DEVICE_LOCAL | CPU_VISIBLE | COHERENT | CPU_CACHED,
                    block_size_granularity: 256,
                    max_chunk_size: 33554432,
                    min_device_allocation: 8388608,
                    sizes: {
                        118784: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        2293760: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        8192: SizeEntry {
                            total_blocks: 9,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        655360: SizeEntry {
                            total_blocks: 2,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        2752512: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        589824: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        393216: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [
                                    0,
                                ],
                                layer1: [
                                    0,
                                ],
                                layer0: [
                                    0,
                                ],
                            },
                            chunks: Slab { len: 0, cap: 1 },
                        },
                        1835008: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        2048: SizeEntry {
                            total_blocks: 2,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        794624: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        532480: SizeEntry {
                            total_blocks: 6,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        1056768: SizeEntry {
                            total_blocks: 8,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    3,
                                ],
                            },
                            chunks: Slab { len: 2, cap: 4 },
                        },
                        256: SizeEntry {
                            total_blocks: 1861,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    8589934591,
                                ],
                            },
                            chunks: Slab { len: 33, cap: 64 },
                        },
                        32768: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        294912: SizeEntry {
                            total_blocks: 2,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        786432: SizeEntry {
                            total_blocks: 2,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        2359296: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        262144: SizeEntry {
                            total_blocks: 8,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        12288: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        524288: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        307200: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [
                                    0,
                                ],
                                layer1: [
                                    0,
                                ],
                                layer0: [
                                    0,
                                ],
                            },
                            chunks: Slab { len: 0, cap: 1 },
                        },
                        8388608: SizeEntry {
                            total_blocks: 2,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    2,
                                ],
                            },
                            chunks: Slab { len: 2, cap: 2 },
                        },
                        16384: SizeEntry {
                            total_blocks: 8,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    5,
                                ],
                            },
                            chunks: Slab { len: 2, cap: 4 },
                        },
                        2097152: SizeEntry {
                            total_blocks: 8,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1023,
                                ],
                            },
                            chunks: Slab { len: 10, cap: 16 },
                        },
                        544768: SizeEntry {
                            total_blocks: 5,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        884736: SizeEntry {
                            total_blocks: 36,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    31,
                                ],
                            },
                            chunks: Slab { len: 5, cap: 8 },
                        },
                        458752: SizeEntry {
                            total_blocks: 6,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        102400: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        339968: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        2621440: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        4096: SizeEntry {
                            total_blocks: 2,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        229376: SizeEntry {
                            total_blocks: 24,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    995,
                                ],
                            },
                            chunks: Slab { len: 10, cap: 16 },
                        },
                        1966080: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        557056: SizeEntry {
                            total_blocks: 425,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    288230376151711743,
                                ],
                            },
                            chunks: Slab { len: 58, cap: 64 },
                        },
                        1048576: SizeEntry {
                            total_blocks: 8,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 8 },
                        },
                        33554432: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        16777216: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        4194304: SizeEntry {
                            total_blocks: 6,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    1,
                                ],
                            },
                            chunks: Slab { len: 1, cap: 1 },
                        },
                        917504: SizeEntry {
                            total_blocks: 3,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        1310720: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        270336: SizeEntry {
                            total_blocks: 6,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [
                                    0,
                                ],
                                layer1: [
                                    0,
                                ],
                                layer0: [
                                    0,
                                ],
                            },
                            chunks: Slab { len: 0, cap: 1 },
                        },
                        3670016: SizeEntry {
                            total_blocks: 6,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        65536: SizeEntry {
                            total_blocks: 11,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    1,
                                ],
                                layer0: [
                                    3,
                                ],
                            },
                            chunks: Slab { len: 2, cap: 2 },
                        },
                        131072: SizeEntry {
                            total_blocks: 1362,
                            ready_chunks: BitSet {
                                layer3: 1,
                                layer2: [
                                    1,
                                ],
                                layer1: [
                                    3,
                                ],
                                layer0: [
                                    18446744073709551615,
                                    16777215,
                                ],
                            },
                            chunks: Slab { len: 88, cap: 128 },
                        },
                        552960: SizeEntry {
                            total_blocks: 1,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        122880: SizeEntry {
                            total_blocks: 6,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                        3211264: SizeEntry {
                            total_blocks: 6,
                            ready_chunks: BitSet {
                                layer3: 0,
                                layer2: [],
                                layer1: [],
                                layer0: [],
                            },
                            chunks: Slab { len: 0, cap: 0 },
                        },
                    },
                    chunks: {
                        256,
                        8192,
                        16384,
                        65536,
                        131072,
                        229376,
                        262144,
                        557056,
                        884736,
                        1048576,
                        1056768,
                        2097152,
                    },
                },
            ),
            used: 1958826124,
            effective: 1810208140,
        },
    ],
    heaps: [
        MemoryHeap {
            size: 24114526208,
            used: 14737428,
            effective: 14737428,
        },
        MemoryHeap {
            size: 1073741824,
            used: 1073659904,
            effective: 887125248,
        },
    ],
}
Hit MOZ_CRASH(Allocate memory failed: AllocationError(OutOfMemory(OutOfDeviceMemory))) at src/libcore/result.rs:997
#01: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x4763210]
#02: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x555ec6a]
#03: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x555e029]
#04: std::panicking::rust_panic_with_hook::h24c9a1c35b1f49cc[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5bfdd39]
#05: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5bfd7d2]
#06: rust_begin_unwind[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5bfd6b6]
#07: core::panicking::panic_fmt::h0d6d5c8b201e3246[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5c1e46d]
#08: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5d8961f]
#09: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5e46421]
#10: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5e122a6]
#11: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5de013b]
#12: webrender::shade::LazilyCompiledShader::bind::hae91cac6669ad739[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5d5708a]
#13: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x569485e]
#14: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5e045de]
#15: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x568f5a0]
#16: webrender::renderer::Renderer::render::hae5e175b18ec5c13[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x568f21c]
#17: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x55df684]
#18: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1c00491]
#19: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1bffa91]
#20: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1bff5b2]
#21: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1c08b85]
#22: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e38f9]
#23: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e3e47]
#24: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e4047]
#25: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e4ae8]
#26: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e3735]
#27: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e3690]
#28: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12eda42]
#29: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e9267]
#30: ???[/lib/x86_64-linux-gnu/libpthread.so.0 +0x76db]
#31: clone[/lib/x86_64-linux-gnu/libc.so.6 +0x12188f]
#32: ??? (???:???)

Program /home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/firefox (pid = 1285) received signal 11.
Stack:
#01: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x54b06ab]
#02: ???[/lib/x86_64-linux-gnu/libpthread.so.0 +0x12890]
#03: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x4763238]
#04: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x4763210]
#05: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x555ec6a]
#06: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x555e029]
#07: std::panicking::rust_panic_with_hook::h24c9a1c35b1f49cc[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5bfdd39]
#08: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5bfd7d2]
#09: rust_begin_unwind[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5bfd6b6]
#10: core::panicking::panic_fmt::h0d6d5c8b201e3246[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5c1e46d]
#11: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5d8961f]
#12: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5e46421]
#13: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5e122a6]
#14: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5de013b]
#15: webrender::shade::LazilyCompiledShader::bind::hae91cac6669ad739[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5d5708a]
#16: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x569485e]
#17: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x5e045de]
#18: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x568f5a0]
#19: webrender::renderer::Renderer::render::hae5e175b18ec5c13[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x568f21c]
#20: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x55df684]
#21: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1c00491]
#22: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1bffa91]
#23: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1bff5b2]
#24: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x1c08b85]
#25: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e38f9]
#26: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e3e47]
#27: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e4047]
#28: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e4ae8]
#29: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e3735]
#30: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e3690]
#31: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12eda42]
#32: ???[/home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/bin/libxul.so +0x12e9267]
#33: ???[/lib/x86_64-linux-gnu/libpthread.so.0 +0x76db]
#34: clone[/lib/x86_64-linux-gnu/libc.so.6 +0x12188f]
#35: ??? (???:???)
zakorgy commented 5 years ago

gdb backtrace:

(gdb) bt
#0  0x00007fffe77d7238 in MOZ_CrashOOL(char const*, int, char const*) (aFilename=<optimized out>, aLine=997, aReason=0x7fffe024959a "Allocate memory failed: AllocationError(OutOfMemory(OutOfDeviceMemory))")
    at /home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/include/mozilla/Assertions.h:314
#1  0x00007fffe77d7210 in GeckoCrashOOL(char const*, int, char const*) (aFilename=0x7ffff706e680 <_IO_2_1_stderr_> "\207(\255", <incomplete sequence \373>, aLine=-150538064, aReason=0x0) at /home/zakorgy/Work/gecko-dev/toolkit/xre/nsAppRunner.cpp:4881
#2  0x00007fffe85d2c6a in gkrust_shared::panic_hook (info=<optimized out>) at toolkit/library/rust/shared/lib.rs:232
#3  0x00007fffe85d2029 in core::ops::function::Fn::call ()
    at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/ops/function.rs:69
#4  0x00007fffe8c71d39 in rust_panic_with_hook () at src/libstd/panicking.rs:478
#5  0x00007fffe8c717d2 in continue_panic_fmt () at src/libstd/panicking.rs:381
#6  0x00007fffe8c716b6 in rust_begin_unwind () at src/libstd/panicking.rs:308
#7  0x00007fffe8c9246d in panic_fmt () at src/libcore/panicking.rs:85
#8  0x00007fffe8dfd61f in core::result::unwrap_failed (msg=..., error=...)
    at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/macros.rs:18
#9  0x00007fffe8eba421 in core::result::Result<T,E>::expect (self=..., msg=...)
    at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/result.rs:825
#10 0x00007fffe8eba421 in webrender::device::gfx::buffer::Buffer<B>::new (device=0x7fffa8acc010, heaps=0x7fffa8acc018, memory_usage=rendy_memory::usage::MemoryUsageValue::Dynamic, buffer_usage=..., alignment_mask=127, data_len=8192, stride=68)
    at gfx/wr/webrender/src/device/gfx/buffer.rs:42
#11 0x00007fffe8e862a6 in webrender::device::gfx::buffer::InstancePoolBuffer<B>::new (device=<optimized out>, heaps=<optimized out>, buffer_usage=..., data_stride=<optimized out>, alignment_mask=<optimized out>, non_coherent_atom_size_mask=<optimized out>) at gfx/wr/webrender/src/device/gfx/buffer.rs:238
#12 0x00007fffe8e862a6 in webrender::device::gfx::buffer::InstanceBufferHandler<B>::new (device=<optimized out>, heaps=<optimized out>, data_stride=<optimized out>, non_coherent_atom_size_mask=<optimized out>, alignment_mask=<optimized out>)
    at gfx/wr/webrender/src/device/gfx/buffer.rs:292
#13 0x00007fffe8e862a6 in webrender::device::gfx::program::Program<B>::create (pipeline_requirements=..., device=<optimized out>, pipeline_layout=<optimized out>, heaps=<optimized out>, limits=<optimized out>, shader_name=..., features=..., shader_kind=..., render_pass=<optimized out>, frame_count=<optimized out>, shader_modules=<optimized out>, pipeline_cache=..., surface_format=<optimized out>) at gfx/wr/webrender/src/device/gfx/program.rs:353
#14 0x00007fffe8e5413b in webrender::device::gfx::device::Device<B>::create_program (self=<optimized out>, shader_name=..., shader_kind=<optimized out>, features=...) at gfx/wr/webrender/src/device/gfx/device.rs:1341
#15 0x00007fffe8dcb08a in webrender::device::gfx::device::Device<B>::create_program_with_kind (self=0x7fffa8acc010, shader_name=..., shader_kind=0x7ffff706f8b0 <_IO_stdfile_2_lock>, features=..., _precache_flags=...)
    at gfx/wr/webrender/src/device/gfx/device.rs:1372
--DOMWINDOW == 2 (0x7fffdd310000) [pid = 5334] [serial = 3] [outer = (nil)] [url = about:home]
#16 0x00007fffe8dcb08a in webrender::shade::LazilyCompiledShader::get_internal (self=0x7fffa8aa0630, device=0x7fffa8acc010, precache_flags=...) at gfx/wr/webrender/src/shade.rs:130
#17 0x00007fffe8dcb08a in webrender::shade::LazilyCompiledShader::get (self=0x7fffa8aa0630, device=0x7fffa8acc010)
    at gfx/wr/webrender/src/shade.rs:143
#18 0x00007fffe8dcb08a in webrender::shade::LazilyCompiledShader::bind (self=0x7fffa8aa0630, device=0x7fffa8acc010, projection=0x7fffe024b050, renderer_errors=0x7fffa8acd7b0) at gfx/wr/webrender/src/shade.rs:113
#19 0x00007fffe87085de in webrender::renderer::Renderer::draw_alpha_target (self=<optimized out>, target=<optimized out>, projection=<optimized out>, render_tasks=<optimized out>, stats=<optimized out>, draw_target=...)
    at gfx/wr/webrender/src/renderer.rs:3434
#20 0x00007fffe87085de in webrender::renderer::Renderer::draw_tile_frame (self=<optimized out>, frame=<optimized out>, framebuffer_size=..., framebuffer_depth_is_ready=<optimized out>, frame_id=..., stats=<optimized out>)
    at gfx/wr/webrender/src/renderer.rs:3972
#21 0x00007fffe8e785de in webrender::renderer::Renderer::render_impl::{{closure}} () at gfx/wr/webrender/src/renderer.rs:2373
#22 0x00007fffe8e785de in webrender::profiler::TimeProfileCounter::profile (self=0x7fffe024b508, callback=...)
    at gfx/wr/webrender/src/profiler.rs:190
---Type <return> to continue, or q <return> to quit---
#23 0x00007fffe87035a0 in webrender::renderer::Renderer::render_impl (self=<optimized out>, framebuffer_size=...)
    at gfx/wr/webrender/src/renderer.rs:2326
#24 0x00007fffe870321c in webrender::renderer::Renderer::render (self=0x7fffa8acc000, framebuffer_size=...)
    at gfx/wr/webrender/src/renderer.rs:2257
#25 0x00007fffe8653684 in wr_renderer_render (renderer=0x7fffa8acc000, width=1280, height=<optimized out>, had_slow_frame=<optimized out>, out_stats=0x7fffe024b8c0) at gfx/webrender_bindings/src/bindings.rs:662
#26 0x00007fffe4c74491 in mozilla::wr::RendererOGL::UpdateAndRender(mozilla::Maybe<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> > const&, mozilla::Maybe<mozilla::Range<unsigned char> > const&, bool, mozilla::wr::RendererStats*) (this=0x7fffa8a99f40, aReadbackSize=..., aReadbackBuffer=..., aHadSlowFrame=false, aOutStats=0x7fffe024b8c0)
    at /home/zakorgy/Work/gecko-dev/gfx/webrender_bindings/RendererOGL.cpp:121
#27 0x00007fffe4c73a91 in mozilla::wr::RenderThread::UpdateAndRender(mozilla::wr::WrWindowId, mozilla::layers::BaseTransactionId<mozilla::VsyncIdType> const&, mozilla::TimeStamp const&, bool, mozilla::Maybe<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> > const&, mozilla::Maybe<mozilla::Range<unsigned char> > const&, bool) (this=<optimized out>, aWindowId=..., aStartId=..., aStartTime=..., aRender=true, aReadbackSize=..., aReadbackBuffer=..., aHadSlowFrame=<optimized out>)
    at /home/zakorgy/Work/gecko-dev/gfx/webrender_bindings/RenderThread.cpp:369
#28 0x00007fffe4c735b2 in mozilla::wr::RenderThread::HandleFrame(mozilla::wr::WrWindowId, bool) (this=0x7ffff6acd180, aWindowId=..., aRender=<optimized out>) at /home/zakorgy/Work/gecko-dev/gfx/webrender_bindings/RenderThread.cpp:262
#29 0x00007fffe4c7cb85 in mozilla::detail::RunnableMethodArguments<mozilla::wr::WrWindowId, bool>::applyImpl<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByConstLRef<bool>, 0ul, 1ul>(mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), mozilla::Tuple<StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByConstLRef<bool> >&, std::integer_sequence<unsigned long, 0ul, 1ul>) (o=<optimized out>, m=<optimized out>, args=...)
    at /home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/include/nsThreadUtils.h:1119
#30 0x00007fffe4c7cb85 in _ZN7mozilla6detail23RunnableMethodArgumentsIJNS_2wr10WrWindowIdEbEE5applyINS2_12RenderThreadEMS6_FvS3_bEEEDTcl9applyImplfp_fp0_dtdefpT10mArgumentstlSt16integer_sequenceImJLm0ELm1EEEEEEPT_T0_ (o=<optimized out>, m=<optimized out>, this=<optimized out>) at /home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/include/nsThreadUtils.h:1125
#31 0x00007fffe4c7cb85 in mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, bool>::Run() (this=
    0x555555790588 <gMozCrashReason>) at /home/zakorgy/Work/gecko-dev/obj-ff-dbg-vk/dist/include/nsThreadUtils.h:1171
#32 0x00007fffe43578f9 in MessageLoop::RunTask(already_AddRefed<nsIRunnable>) (this=0x7fffe024bcd0, aTask=...)
    at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/message_loop.cc:442
#33 0x00007fffe4357e47 in MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask&&) (this=0x7fffe024bcd0, pending_task=...) at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/message_loop.cc:450
#34 0x00007fffe4358047 in MessageLoop::DoWork() (this=0x7fffe024bcd0)
    at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/message_loop.cc:523
#35 0x00007fffe4358ae8 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) (this=0x7fffd6962250, delegate=0x7fffe024bcd0) at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/message_pump_default.cc:35
#36 0x00007fffe4357735 in MessageLoop::RunInternal() (this=0x7fffe024bcd0)
    at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/message_loop.cc:315
#37 0x00007fffe4357690 in MessageLoop::RunHandler() (this=0x7fffe024bcd0)
    at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/message_loop.cc:308
#38 0x00007fffe4357690 in MessageLoop::Run() (this=0x7fffe024bcd0)
    at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/message_loop.cc:290
#39 0x00007fffe4361a42 in base::Thread::ThreadMain() (this=0x7fffd6970ab0)
    at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/thread.cc:192
#40 0x00007fffe435d267 in ThreadFunc(void*) (closure=0x7ffff706e680 <_IO_2_1_stderr_>)
    at /home/zakorgy/Work/gecko-dev/ipc/chromium/src/base/platform_thread_posix.cc:40
#41 0x00007ffff7bbd6db in start_thread (arg=0x7fffe024c700) at pthread_create.c:463
#42 0x00007ffff6da388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) [Child 5334, Main Thread] WARNING: 'NS_FAILED(rv)', file /home/zakorgy/Work/gecko-dev/xpcom/base/MemoryTelemetry.cpp, line 280
zakorgy commented 5 years ago

Link to the Gecko branch: https://github.com/zakorgy/gecko-dev/commits/ff_66_0b6_rel_gfx_with_desc_refakt

zakorgy commented 5 years ago

This was fixed by #300