Summary: | [r300g] src/mesa/state_tracker/st_mesa_to_tgsi.c:228:src_register: Assertion `index >= 0' failed. | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | Mesa core | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | medium | ||
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | check register indexes during linking |
Description
Vinson Lee
2010-11-20 18:31:41 UTC
glsl-fs-uniform-array-6 surpasses hardware limits of r300 (it uses 1024 vec4s, while only 256 are supported). To "fix" this for r300, the test should check for GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB and skip accordingly (there's a patch in ML which sets MaxUniformComponents in st/mesa). I am reassigning this bug to Mesa core, because the assertion failure is outside the driver. Created attachment 40524 [details] [review] check register indexes during linking Can you try this patch? It adds checking to the linker to see if any hardware/driver limits are exceeded. This isn't ideal, however. Since register allocation is the driver's job now, the number of Mesa temp registers used may exceed the gl_program_constants::MaxTemps value but be reduced to a smaller set of temps in the driver. The linker should call into the driver during linking to give the driver a chance to check/report resource-exceeded errors. I tested check-registers.patch (id=40524). glsl-fs-uniform-array-6 now checks for GL_MAX_FRAGMENT_UNIFORM_COMPONENTS. I removed that check when testing the patch. The test no longer crashes and now gracefully fails. $ ./bin/shader_runner tests/shaders/glsl-fs-uniform-array-6.shader_test -auto radeon: Successfully grabbed chipset info from kernel! radeon: DRM version: 2.5.0 ID: 0x71c5 GB: 1 Z: 2 radeon: GART size: 509 MB VRAM size: 128 MB radeon: HyperZ: NO Failed to link: Register CONST[1026] exceeds implementation limits. PIGLIT: {'result': 'fail' } 3 years old bug. Tested on r300g, git 2013-10-04. Piglit test is skipped with message: Test requires max fragment uniform components >= 4097. The driver supports 128. |
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.