Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 3.4k
    • Issues 3.4k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1.1k
    • Merge requests 1.1k
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Admin message

Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.

  • MesaMesa
  • mesamesa
  • Issues
  • #686

[gles2] 18 else case will cause Exceeded max instructions

Submitted by Hai

Assigned to Eric Anholt @anholt

Link to original bug (#31980)

Description

System Environment:

Libdrm: (master)2.4.22-17-g1443bea488f6ad47cb4469c01b35aea0377822c0 Mesa: (master)c6ea4c0e Xserver:
(server-1.9-branch)xorg-server-1.9.2.901-12-g65f2ab20b22914a142497057cc8919a357829a95 Xf86_video_intel:
(master)2.13.901-5-g0bb135c40e5ac1bf7593ec1d68d2815cbf47aa25 Cairo: (master)f238da5291cdb347daa0be64ecc393fc519c4ead Kernel: (drm-intel-fixes) 1bb95834bbcdc969e477a9284cf96c17a4c2616f

Bug detailed description:

This is for opengles2 conformance test. If run on Pineview the reported error is: EGL_VERSION = 1.4 (DRI2) i915_program_error: Exceeded max instructions (687 out of 123)

Reproduce steps:

./gles2_shader_runner 1.shader_test -auto Following is the content of 1.shader_test

[require] GLES >= 2.0 ESSL >= 1.00

[vertex shader] attribute highp vec4 piglit_Position; varying vec4 texcoords;

void main() { gl_Position = piglit_Position; texcoords = (piglit_Position + 1.0) / 2.0; }

[fragment shader] varying vec4 texcoords;

void main() { int i = 0; float f[20]; vec4 color = vec4(0.0);

f[0] = 0.0;
f[1] = 0.1;
f[2] = 0.2;
f[3] = 0.3;
f[4] = 0.4;
f[5] = 0.5;
f[6] = 0.6;
f[7] = 0.7;
f[8] = 0.8;
f[9] = 0.9;
f[10] = 1.0;
f[11] = 1.1;
f[12] = 1.2;
f[13] = 1.3;
f[14] = 1.4;
f[15] = 1.5;
f[16] = 1.6;
f[17] = 1.7;
f[18] = 1.8;
f[19] = 1.9;

if (f[i] > f[i+1])
{
    color.r = 0.01;
}
else if (f[i] > f[i+1])
{
    color.r = 0.02;
}
else if (f[i] > f[i+1])
{
    color.r = 0.03;
}
else if (f[i] > f[i+1])
{
    color.r = 0.04;
}
else if (f[i] > f[i+1])
{
    color.r = 0.05;
}
else if (f[i] > f[i+1])
{
    color.r = 0.06;
}
else if (f[i] > f[i+1])
{
    color.r = 0.07;
}
else if (f[i] > f[i+1])
{
    color.r = 0.08;
}
else if (f[i] > f[i+1])
{
    color.r = 0.09;
}
else if (f[i] > f[i+1])
{
    color.r = 0.1;
}
else if (f[i] > f[i+1])
{
    color.r = 0.11;
}
else if (f[i] > f[i+1])
{
    color.r = 0.12;
}
else if (f[i] > f[i+1])
{
    color.r = 0.13;
}
else if (f[i] > f[i+1])
{
    color.r = 0.14;
}
else if (f[i] > f[i+1])
{
    color.r = 0.15;
}
else if (f[i] > f[i+1])
{
    color.r = 0.16;
}
else if (f[i] > f[i+1])
{
    color.r = 0.17;
}
else if (f[i] > f[i+1])
{
    color.r = 0.18;
}
else 
{
    color.r = 0.19;
}
gl_FragColor = color;

}

[test] draw rect -1 -1 2 2 relative probe rgb (0.25, 0.25) (0.19, 0.0, 0.0)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking