[mythtv] recent mythtv-master GL2 issues

Warpme warpme at o2.pl
Wed Apr 15 21:00:37 UTC 2015


Hi,

I have Q regarding recent mythtv-master commits related to GL1/GL2 and 
vaapi.

Changes in question comes with this commit:
https://github.com/MythTV/mythtv/commit/e3270dc2424a6823239565b0306ef0e09167fb62

On 2 systems where GL is provided by MESA I have to switch ThemePainter 
to Auto (effectively GL2) as with GL1 I started to have black screen 
playback.

Unfortunately switch to GL2 starts to give me following entries in 
mythfronted log:


2015-04-15 18:44:08.185288 I Trying the OpenGL 2.0 render
2015-04-15 18:44:08.193186 D OpenGL: Extension not found: glGenFencesNV
2015-04-15 18:44:08.193242 D OpenGL: Extension not found: glDeleteFencesNV
2015-04-15 18:44:08.193281 D OpenGL: Extension not found: glSetFenceNV
2015-04-15 18:44:08.193318 D OpenGL: Extension not found: glFinishFenceNV
2015-04-15 18:44:08.193369 D OpenGL: Extension not found: glGenFencesAPPLE
2015-04-15 18:44:08.193419 D OpenGL: Extension not found: 
glDeleteFencesAPPLE
2015-04-15 18:44:08.193456 D OpenGL: Extension not found: glSetFenceAPPLE
2015-04-15 18:44:08.193504 D OpenGL: Extension not found: glFinishFenceAPPLE
2015-04-15 18:44:08.220220 I OpenGL2: GLSL supported
2015-04-15 18:44:08.220376 I OpenGL: OpenGL vendor : X.Org
2015-04-15 18:44:08.220392 I OpenGL: OpenGL renderer: Gallium 0.4 on AMD 
KABINI
2015-04-15 18:44:08.220403 I OpenGL: OpenGL version : 3.0 Mesa 10.5.3
2015-04-15 18:44:08.220419 I OpenGL: Max texture size: 16384 x 16384
2015-04-15 18:44:08.220430 I OpenGL: Max texture units: 8
2015-04-15 18:44:08.220442 I OpenGL: Direct rendering: Yes
2015-04-15 18:44:08.220452 I OpenGL: PixelBufferObject support available
2015-04-15 18:44:08.220506 D
#version 110
attribute vec2 a_position;
attribute vec4 a_color;
varying vec4 v_color;
uniform mat4 u_projection;
uniform mat4 u_transform;
void main() {
gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0);
v_color = a_color;
}

2015-04-15 18:44:08.220523 D
#version 110
varying vec4 v_color;
void main(void)
{
gl_FragColor = v_color;
}

2015-04-15 18:44:08.227048 D
#version 110
attribute vec2 a_position;
attribute vec4 a_color;
attribute vec2 a_texcoord0;
varying vec4 v_color;
varying vec2 v_texcoord0;
uniform mat4 u_projection;
uniform mat4 u_transform;
void main() {
gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0);
v_texcoord0 = a_texcoord0;
v_color = a_color;
}

2015-04-15 18:44:08.227074 D
#version 110
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect s_texture0;
varying vec4 v_color;
varying vec2 v_texcoord0;
void main(void)
{
gl_FragColor = texture2DRect(s_texture0, v_texcoord0) * v_color;
}

2015-04-15 18:44:08.246723 D
#version 110
attribute vec2 a_position;
attribute vec4 a_color;
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_projection;
uniform mat4 u_transform;
void main() {
gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0);
v_color = a_color;
v_position = a_position;
}

2015-04-15 18:44:08.246748 D
#version 110
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_parameters;
void main(void)
{
float dis = distance(v_position.xy, u_parameters[0].xy);
float mult = smoothstep(u_parameters[0].z, u_parameters[0].w, dis);
gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult);
}

2015-04-15 18:44:08.256572 D
#version 110
attribute vec2 a_position;
attribute vec4 a_color;
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_projection;
uniform mat4 u_transform;
void main() {
gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0);
v_color = a_color;
v_position = a_position;
}

2015-04-15 18:44:08.256596 D
#version 110
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_parameters;
void main(void)
{
float dis = distance(v_position.xy, u_parameters[0].xy);
float rad = u_parameters[0].z;
float wid = u_parameters[0].w;
float mult = smoothstep(rad + wid, rad + (wid - 1.0), dis) * 
smoothstep(rad - (wid + 1.0), rad - wid, dis);
gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult);
}

2015-04-15 18:44:08.268784 D
#version 110
attribute vec2 a_position;
attribute vec4 a_color;
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_projection;
uniform mat4 u_transform;
void main() {
gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0);
v_color = a_color;
v_position = a_position;
}

2015-04-15 18:44:08.268809 D
#version 110
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_parameters;
void main(void)
{
float dis = abs(u_parameters[0].x - v_position.x);
float y = u_parameters[0].y * 2.0;
float mult = smoothstep(y, y - 0.1, dis) * smoothstep(-0.1, 0.0, dis);
gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult);
}

2015-04-15 18:44:08.280016 D
#version 110
attribute vec2 a_position;
attribute vec4 a_color;
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_projection;
uniform mat4 u_transform;
void main() {
gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0);
v_color = a_color;
v_position = a_position;
}

2015-04-15 18:44:08.280039 D
#version 110
varying vec4 v_color;
varying vec2 v_position;
uniform mat4 u_parameters;
void main(void)
{
float dis = abs(u_parameters[0].x - v_position.y);
float x = u_parameters[0].y * 2.0;
float mult = smoothstep(x, x - 0.1, dis) * smoothstep(-0.1, 0.0, dis);
gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult);
}

2015-04-15 18:44:08.291162 I OpenGL: Initialised MythRenderOpenGL
2015-04-15 18:44:13.091079 I MythCoreContext::ConnectCommandSocket(): 
Connecting to backend server: 192.168.1.254:6543 (try 1 of 1)




Relevant code change is within this commit:
https://github.com/MythTV/mythtv/commit/b997114683759562dbaf6b80a651070d099195ac

With this change I have:
GL1: playback with black screen and no above entries in mythlog
GL2: playback OK but above entries in mythlog

With this change reverted I have:
GL1: playback OK and no mythlog issue
GL2: playback with black screen and above entries in mythlog

I think root issue is with GL2 - but I'm not sure is this because of my 
environment (minimal standard GL implementation) or because of MythTV code.
If this is about my GL environment implementation - I can change this 
but I want to know what feature is missing in my GL provider config.

pls advice





More information about the mythtv-dev mailing list