[Mesa-dev] Status of radeonsi NIR

Benedikt Schemmer ben at besd.de
Sun Apr 15 12:52:28 UTC 2018


Hi all,

I did some more test runs with NIR and shader-db.
This time they also include piglit shaders.
There was only one crash that was explicitly related to NIR but also
quite a number of regressions that might be worth looking at.
I've put the results up on
https://github.com/bendat78/mymesa/tree/mymesa2/testresults
look at the most current run* directory.

(a)

=> CRASHED <= while processing these shaders:
 shaders/piglit/da1588b9fd1ec5009a02ff9ee244f11923d32855_3.shader_test

[require]
GLSL >= 1.10

[vertex shader]
#version 110
#if __VERSION__ >= 130
in vec4 piglit_vertex;
#else
attribute vec4 piglit_vertex;
#endif
void main() { gl_Position = piglit_vertex; }


[fragment shader]
#version 110
uniform float id;
void main()
{
	ivec4 test = ivec4(0, 1, 0, 0);
	vec4 test2 = vec4(0.0, 1.0, 0.0, 0.0);
	int index = int(id);
	float col = test2[test[index]];
	gl_FragColor = vec4(col);
}


(b)

Might be worth looking at this one as it is related to Alien Isolation
and has significant regressions

VGPRS: 4 -> 64 (1500.00 %) (in
shaders/piglit/51e07b0ac242a7c22d5d519ea8b3e4f7ac8e51f9_2.shader_test)
Spilled VGPRs: 0 -> 46 (0.00 %) (in
shaders/piglit/51e07b0ac242a7c22d5d519ea8b3e4f7ac8e51f9_2.shader_test)
Scratch size: 0 -> 36 (0.00 %) dwords per thread (in
shaders/piglit/51e07b0ac242a7c22d5d519ea8b3e4f7ac8e51f9_2.shader_test)
Code Size: 108 -> 7148 (6518.52 %) bytes (in
shaders/piglit/51e07b0ac242a7c22d5d519ea8b3e4f7ac8e51f9_2.shader_test)

# Tests linking a shader with a large workgroup and local data set.
#
# This is related to:
# Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93840
#
# There are two important elements to this test:
#
# 1. local workgroup size of 1024 based on the spec requirements.
#
# 2. Use a 'large' size of live local data. In the test this is
#    controlled with the SIZE macro. This is hardware specific, and
#    the value of 64 was chosen because it was observed to fail on the
#    Mesa i965 driver.

[require]
GL >= 3.3
GLSL >= 3.30
GL_ARB_compute_shader

[compute shader]
#version 330
#extension GL_ARB_compute_shader: enable

layout(local_size_x = 1024) in;

#define SIZE 64

shared int sa[SIZE];

void main()
{
    int a[SIZE] = sa;
    a[int(gl_LocalInvocationIndex) % SIZE] += 1;
    if (a[int(gl_LocalInvocationIndex) % SIZE] == 0)
        sa[0] = 1;
}

[test]
link success


(c)

there are a number of shaders that show this kind of behavior (dont know
if they do for the same reason):

Max Waves: 8 -> 1 (-87.50 %) (in
shaders/piglit/31a96d9a82c154da664023713921aab10967ef83_1533.shader_test)

from

/** @file glsl-max-varyings.c
 *
 * Tests whether each varying can be used at all numbers of varyings up to
 * GL_MAX_VARYING_FLOATS / 4.
 */



Have fun,
Benedikt


More information about the mesa-dev mailing list