Mir

Merge lp:~vanvugt/mir/fix-1583532 into lp:mir

Proposed by Daniel van Vugt
Status: Merged
Approved by: Daniel van Vugt
Approved revision: no longer in the source branch.
Merged at revision: 3524
Proposed branch: lp:~vanvugt/mir/fix-1583532
Merge into: lp:mir
Diff against target: 82 lines (+19/-33)
1 file modified
examples/eglplasma.c (+19/-33)
To merge this branch: bzr merge lp:~vanvugt/mir/fix-1583532
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Daniel van Vugt Approve
Andreas Pokorny (community) Approve
Cemil Azizoglu (community) Approve
Review via email: mp+295564@code.launchpad.net

Commit message

Simplify the eglplasma fragment shader so it now fits within the
hardware limitations of i915, and can render in hardware on an
Intel Atom instead of software (30.0FPS vs 0.15FPS == 200x faster).
(LP: #1583532)

Description of the change

It may not sound important, but this is a proof of concept for resolving Unity8 bug 1580792.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3516
https://mir-jenkins.ubuntu.com/job/mir-ci/1026/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1123
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1171
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1162
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1162
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1133
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1133/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1133
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1133/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1133
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1133/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1133
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1133/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1133
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1133/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1026/rebuild

review: Approve (continuous-integration)
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

Ok

review: Approve
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

oh.. so cos is supported then?

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3518
https://mir-jenkins.ubuntu.com/job/mir-ci/1034/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1136/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1184
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1175
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1175
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1146
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1146/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1146
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1146/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1146
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1146/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1146
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1146/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1146/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1034/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Yes, there are COS and SIN instructions:
http://www.renderguild.com/gpuguide.pdf

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

The Jenkins failure is bug 1576690, which was fixed only hours after the failure.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I approve this message.

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3519
https://mir-jenkins.ubuntu.com/job/mir-ci/1038/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1142/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1190
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1181
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1181
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1152
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1152/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1152
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1152/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1152
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1152/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1152
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1152/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1152/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1038/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'examples/eglplasma.c'
--- examples/eglplasma.c 2014-03-05 09:26:01 +0000
+++ examples/eglplasma.c 2016-05-26 02:13:43 +0000
@@ -61,40 +61,23 @@
6161
62 const char fshadersrc[] =62 const char fshadersrc[] =
63 "precision mediump float; \n"63 "precision mediump float; \n"
64 "uniform float theta; \n"64 "uniform vec4 theta; \n"
65 "varying vec2 texcoord; \n"65 "varying vec2 texcoord; \n"
66 "uniform vec3 low_color, high_color; \n"66 "uniform vec3 low_color, high_color; \n"
67 " \n"67 " \n"
68 "vec3 gradient(float x) \n"
69 "{ \n"
70 " vec3 col; \n"
71 " const vec3 white = vec3(1.0, 1.0, 1.0); \n"
72 " if (x < 0.333) \n"
73 " col = x * low_color / 0.333; \n"
74 " else if (x < 0.666) \n"
75 " col = (x - 0.333) * (high_color - low_color) / \n"
76 " 0.333 + low_color; \n"
77 " else \n"
78 " col = (x - 0.666) * (white - high_color) / \n"
79 " 0.333 + high_color; \n"
80 " return col; \n"
81 "} \n"
82 " \n"
83 "void main() \n"68 "void main() \n"
84 "{ \n"69 "{ \n"
85 " const float pi2 = 6.283185308; \n"70 " const float pi2 = 6.283185308; \n"
86 " float u = texcoord.x * pi2; \n"71 " float x = texcoord.x * pi2; \n"
87 " float v = texcoord.y * pi2; \n"72 " float y = texcoord.y * pi2; \n"
88 " float us = (cos(1.1 * u + 7.0 * theta) + \n"73 " float a = cos(1.0 * (x + theta.x)); \n"
89 " cos(2.3 * v * cos(1.0 * theta)) + \n"74 " float b = cos(2.0 * (y + theta.y + a)); \n"
90 " cos(0.3 * u * cos(3.0 * theta)) \n"75 " float c = cos(2.0 * (2.0*x + theta.z + b)); \n"
91 " ) / 3.0; \n"76 " float d = cos(1.0 * (3.0*y + theta.w + c)); \n"
92 " float vs = (cos(2.3 * v + 8.0 * theta) + \n"77 " float v = (a+b+c+d + 4.0) / 8.0; \n"
93 " cos(1.3 * u * cos(3.0 * theta)) + \n"78 " vec3 color = v * (high_color - low_color) + \n"
94 " cos(1.7 * v * cos(2.0 * theta)) \n"79 " low_color; \n"
95 " ) / 3.0; \n"80 " gl_FragColor = vec4(color, 1.0); \n"
96 " float x = (us * vs + 1.0) / 2.0; \n"
97 " gl_FragColor = vec4(gradient(x), 1.0); \n"
98 "} \n";81 "} \n";
9982
100 const GLfloat vertices[] =83 const GLfloat vertices[] =
@@ -108,7 +91,7 @@
108 GLuint vshader, fshader, prog;91 GLuint vshader, fshader, prog;
109 GLint linked, low_color, high_color, vpos, theta;92 GLint linked, low_color, high_color, vpos, theta;
110 unsigned int width = 0, height = 0;93 unsigned int width = 0, height = 0;
111 GLfloat angle = 0.0f;94 GLfloat angle[4] = {3.1f, 4.1f, 5.9f, 2.6f};
11295
113 if (!mir_eglapp_init(argc, argv, &width, &height))96 if (!mir_eglapp_init(argc, argv, &width, &height))
114 return 1;97 return 1;
@@ -149,10 +132,13 @@
149132
150 while (mir_eglapp_running())133 while (mir_eglapp_running())
151 {134 {
152 glUniform1f(theta, angle);135 glUniform4fv(theta, 1, angle);
153 angle += 0.005f;136 angle[0] += 0.00345f;
154 if (angle > pi2)137 angle[1] += 0.01947f;
155 angle -= pi2;138 angle[2] += 0.03758f;
139 angle[3] += 0.01711f;
140 for (int a = 0; a < 4; ++a)
141 if (angle[a] > pi2) angle[a] -= pi2;
156 glDrawArrays(GL_TRIANGLE_FAN, 0, 4);142 glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
157 mir_eglapp_swap_buffers();143 mir_eglapp_swap_buffers();
158 }144 }

Subscribers

People subscribed via source and target branches