Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2,881
    • Issues 2,881
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 906
    • Merge requests 906
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Mesa
  • mesamesa
  • Issues
  • #686

Closed
Open
Created Sep 18, 2019 by Bugzilla Migration User@bugzilla-migration

[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