* [Qemu-devel] fail to test virtio-gpu with heaven benchmark4.0
@ 2016-08-29 8:54 Chen Fan
2016-08-29 9:03 ` Marc-André Lureau
0 siblings, 1 reply; 2+ messages in thread
From: Chen Fan @ 2016-08-29 8:54 UTC (permalink / raw)
To: kraxel, marcandre.lureau, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 14780 bytes --]
Hi all,
I tried to use virtio-gpu to do some test, the glmark2 works, but when I
ran heaven benchmark in Guest,
the application could not be ran. I have collected the output message.
pls see attachment file.
I built my environment according to the requirement in
https://copr.fedorainfracloud.org/coprs/kraxel/virgl/,
both guest/host kernel version: 4.6
I used the latest qemu forked from master branch
(e00da552a0dc82f4ec7896281eada7201e69f1db),
and run qemu with:
~/data/linux-src/qemu$ ./x86_64-softmmu/qemu-system-x86_64 -vga virtio
-display gtk,gl=on --enable-kvm -m 4000 -smp 4,sockets=1,cores=4 -hda
/home/chenfan/imgs/fedora23.qcow2 -cpu host
when running the heaven benchmark application the qemu has some output
as following, I don't know how to fix that,
do you have some hints? thanks in advance :)
the qemu output messages:
(qemu-system-x86_64:4628): Gdk-WARNING **:
gdk_gl_context_set_required_version - GL context versions less than 3.2
are not supported.
gl_version 33 - core profile enabled
vrend_compile_shader: context error reported 3 "Xorg" Illegal shader 0
shader failed to compile
0:23(34): error: could not implicitly convert operands to arithmetic
operator
0:23(34): error: operands to arithmetic operators must be numeric
0:23(17): error: no matching function for call to
`uintBitsToFloat(error)'; candidates are:
0:23(17): error: vec4 uintBitsToFloat(uvec4)
0:23(17): error: float uintBitsToFloat(uint)
0:23(17): error: vec2 uintBitsToFloat(uvec2)
0:23(17): error: vec3 uintBitsToFloat(uvec3)
0:23(17): error: vec4 uintBitsToFloat(uvec4)
0:23(12): error: cannot construct `vec4' from a non-numeric data type
GLSL:
#version 140
#extension GL_ARB_shader_bit_encoding : require
#extension GL_ARB_draw_instanced : require
in vec4 in_0;
in vec4 in_1;
in vec4 in_2;
in vec4 in_3;
in vec4 in_4;
in vec4 in_5;
out vec4 ex_g9;
out vec4 ex_g10;
out vec4 ex_g11;
out vec4 ex_g12;
out vec4 ex_g13;
uniform vec4 winsys_adjust;
vec4 temp0[10];
int addr0;
uniform uvec4 vsconst0[224];
void main(void)
{
temp0[0].x =
float(intBitsToFloat(ivec4(uintBitsToFloat(vsconst0[6].xxxx))));
temp0[1] = vec4(intBitsToFloat(ivec4((in_1))));
temp0[0] = vec4(uintBitsToFloat((gl_InstanceID *
floatBitsToUint(temp0[0].xxxx) + floatBitsToUint(temp0[1]))));
addr0 = int(floatBitsToInt(temp0[0].xxxx));
addr0 = int(floatBitsToInt(temp0[0].xxxx));
temp0[1] = vec4(((uintBitsToFloat(vsconst0[addr0 + 7]) * (in_2.xxxx))));
temp0[2].x =
float(intBitsToFloat(ivec4((uvec4(floatBitsToUint(temp0[0].xxxx)) +
uvec4(uvec4(ivec4(1,1,1,1)))))).x);
addr0 = int(floatBitsToInt(temp0[2].xxxx));
temp0[2] = vec4((uintBitsToFloat(vsconst0[addr0 + 7])));
temp0[3].x = float((( temp0[1].wwww * (vec4(2,2,2,2)))).x);
temp0[3].xyz = vec3((( temp0[2].xyzz * temp0[3].xxxx )).xyz);
temp0[4].xy = vec2((( temp0[2].xwww * temp0[3].xxxx )).xy);
temp0[5].xyz = vec3((( temp0[2].xyww * temp0[3].yyyy )).xyz);
temp0[2] = vec4((( temp0[2] * temp0[3].zzzz )));
temp0[3].x = float((( temp0[5].yyyy + temp0[2].zzzz )).x);
temp0[3].x = float((( temp0[1].wwww + -temp0[3].xxxx )).x);
temp0[6].x = float((( temp0[5].xxxx + -temp0[2].wwww )).x);
temp0[3].y = float(( temp0[6].xxxx .y));
temp0[6].x = float((( temp0[2].xxxx + temp0[5].zzzz )).x);
temp0[3].z = float(( temp0[6].xxxx .z));
temp0[3].w = float(( temp0[1].xxxx .w));
temp0[6].x = float((( temp0[5].xxxx + temp0[2].wwww )).x);
temp0[7].x = float((( temp0[4].xxxx + temp0[2].zzzz )).x);
temp0[7].x = float((( temp0[1].wwww + -temp0[7].xxxx )).x);
temp0[6].y = float(( temp0[7].xxxx .y));
temp0[7].x = float((( temp0[2].yyyy + -temp0[4].yyyy )).x);
temp0[6].z = float(( temp0[7].xxxx .z));
temp0[6].w = float(( temp0[1].yyyy .w));
temp0[7].x = float((( temp0[2].xxxx + -temp0[5].zzzz )).x);
temp0[2].x = float((( temp0[2].yyyy + temp0[4].yyyy )).x);
temp0[7].y = float(( temp0[2].xxxx .y));
temp0[2].x = float((( temp0[4].xxxx + temp0[5].yyyy )).x);
temp0[2].x = float((( temp0[1].wwww + -temp0[2].xxxx )).x);
temp0[7].z = float(( temp0[2].xxxx .z));
temp0[7].w = float(( temp0[1].zzzz .w));
addr0 = int(floatBitsToInt(temp0[0].yyyy));
addr0 = int(floatBitsToInt(temp0[0].yyyy));
temp0[1] = vec4(((uintBitsToFloat(vsconst0[addr0 + 7]) * (in_2.yyyy))));
temp0[2].x =
float(intBitsToFloat(ivec4((uvec4(floatBitsToUint(temp0[0].yyyy)) +
uvec4(uvec4(ivec4(1,1,1,1)))))).x);
addr0 = int(floatBitsToInt(temp0[2].xxxx));
temp0[2] = vec4((uintBitsToFloat(vsconst0[addr0 + 7])));
temp0[4].x = float((( temp0[1].wwww * (vec4(2,2,2,2)))).x);
temp0[4].xyz = vec3((( temp0[2].xyzz * temp0[4].xxxx )).xyz);
temp0[5].xy = vec2((( temp0[2].xwww * temp0[4].xxxx )).xy);
temp0[8].xyz = vec3((( temp0[2].xyww * temp0[4].yyyy )).xyz);
temp0[2] = vec4((( temp0[2] * temp0[4].zzzz )));
temp0[4].x = float((( temp0[8].yyyy + temp0[2].zzzz )).x);
temp0[4].x = float((( temp0[1].wwww + -temp0[4].xxxx )).x);
temp0[9].x = float((( temp0[8].xxxx + -temp0[2].wwww )).x);
temp0[4].y = float(( temp0[9].xxxx .y));
temp0[9].x = float((( temp0[2].xxxx + temp0[8].zzzz )).x);
temp0[4].z = float(( temp0[9].xxxx .z));
temp0[4].w = float(( temp0[1].xxxx .w));
temp0[3] = vec4((( temp0[3] + temp0[4] )));
temp0[4].x = float((( temp0[8].xxxx + temp0[2].wwww )).x);
temp0[9].x = float((( temp0[5].xxxx + temp0[2].zzzz )).x);
temp0[9].x = float((( temp0[1].wwww + -temp0[9].xxxx )).x);
temp0[4].y = float(( temp0[9].xxxx .y));
temp0[9].x = float((( temp0[2].yyyy + -temp0[5].yyyy )).x);
temp0[4].z = float(( temp0[9].xxxx .z));
temp0[4].w = float(( temp0[1].yyyy .w));
temp0[4] = vec4((( temp0[6] + temp0[4] )));
temp0[6].x = float((( temp0[2].xxxx + -temp0[8].zzzz )).x);
temp0[2].x = float((( temp0[2].yyyy + temp0[5].yyyy )).x);
temp0[6].y = float(( temp0[2].xxxx .y));
temp0[2].x = float((( temp0[5].xxxx + temp0[8].yyyy )).x);
temp0[2].x = float((( temp0[1].wwww + -temp0[2].xxxx )).x);
temp0[6].z = float(( temp0[2].xxxx .z));
temp0[6].w = float(( temp0[1].zzzz .w));
temp0[1] = vec4((( temp0[7] + temp0[6] )));
addr0 = int(floatBitsToInt(temp0[0].zzzz));
addr0 = int(floatBitsToInt(temp0[0].zzzz));
temp0[2] = vec4(((uintBitsToFloat(vsconst0[addr0 + 7]) * (in_2.zzzz))));
temp0[5].x =
float(intBitsToFloat(ivec4((uvec4(floatBitsToUint(temp0[0].zzzz)) +
uvec4(uvec4(ivec4(1,1,1,1)))))).x);
addr0 = int(floatBitsToInt(temp0[5].xxxx));
temp0[5] = vec4((uintBitsToFloat(vsconst0[addr0 + 7])));
temp0[6].x = float((( temp0[2].wwww * (vec4(2,2,2,2)))).x);
temp0[6].xyz = vec3((( temp0[5].xyzz * temp0[6].xxxx )).xyz);
temp0[7].xy = vec2((( temp0[5].xwww * temp0[6].xxxx )).xy);
temp0[8].xyz = vec3((( temp0[5].xyww * temp0[6].yyyy )).xyz);
temp0[5] = vec4((( temp0[5] * temp0[6].zzzz )));
temp0[6].x = float((( temp0[8].yyyy + temp0[5].zzzz )).x);
temp0[6].x = float((( temp0[2].wwww + -temp0[6].xxxx )).x);
temp0[9].x = float((( temp0[8].xxxx + -temp0[5].wwww )).x);
temp0[6].y = float(( temp0[9].xxxx .y));
temp0[9].x = float((( temp0[5].xxxx + temp0[8].zzzz )).x);
temp0[6].z = float(( temp0[9].xxxx .z));
temp0[6].w = float(( temp0[2].xxxx .w));
temp0[3] = vec4((( temp0[3] + temp0[6] )));
temp0[6].x = float((( temp0[8].xxxx + temp0[5].wwww )).x);
temp0[9].x = float((( temp0[7].xxxx + temp0[5].zzzz )).x);
temp0[9].x = float((( temp0[2].wwww + -temp0[9].xxxx )).x);
temp0[6].y = float(( temp0[9].xxxx .y));
temp0[9].x = float((( temp0[5].yyyy + -temp0[7].yyyy )).x);
temp0[6].z = float(( temp0[9].xxxx .z));
temp0[6].w = float(( temp0[2].yyyy .w));
temp0[4] = vec4((( temp0[4] + temp0[6] )));
temp0[6].x = float((( temp0[5].xxxx + -temp0[8].zzzz )).x);
temp0[5].x = float((( temp0[5].yyyy + temp0[7].yyyy )).x);
temp0[6].y = float(( temp0[5].xxxx .y));
temp0[5].x = float((( temp0[7].xxxx + temp0[8].yyyy )).x);
temp0[5].x = float((( temp0[2].wwww + -temp0[5].xxxx )).x);
temp0[6].z = float(( temp0[5].xxxx .z));
temp0[6].w = float(( temp0[2].zzzz .w));
temp0[1] = vec4((( temp0[1] + temp0[6] )));
addr0 = int(floatBitsToInt(temp0[0].wwww));
addr0 = int(floatBitsToInt(temp0[0].wwww));
temp0[2] = vec4(((uintBitsToFloat(vsconst0[addr0 + 7]) * (in_2.wwww))));
temp0[0].x =
float(intBitsToFloat(ivec4((uvec4(floatBitsToUint(temp0[0].wwww)) +
uvec4(uvec4(ivec4(1,1,1,1)))))).x);
addr0 = int(floatBitsToInt(temp0[0].xxxx));
temp0[0] = vec4((uintBitsToFloat(vsconst0[addr0 + 7])));
temp0[5].x = float((( temp0[2].wwww * (vec4(2,2,2,2)))).x);
temp0[5].xyz = vec3((( temp0[0].xyzz * temp0[5].xxxx )).xyz);
temp0[6].xy = vec2((( temp0[0].xwww * temp0[5].xxxx )).xy);
temp0[7].xyz = vec3((( temp0[0].xyww * temp0[5].yyyy )).xyz);
temp0[0] = vec4((( temp0[0] * temp0[5].zzzz )));
temp0[5].x = float((( temp0[7].yyyy + temp0[0].zzzz )).x);
temp0[5].x = float((( temp0[2].wwww + -temp0[5].xxxx )).x);
temp0[8].x = float((( temp0[7].xxxx + -temp0[0].wwww )).x);
temp0[5].y = float(( temp0[8].xxxx .y));
temp0[8].x = float((( temp0[0].xxxx + temp0[7].zzzz )).x);
temp0[5].z = float(( temp0[8].xxxx .z));
temp0[5].w = float(( temp0[2].xxxx .w));
temp0[3] = vec4((( temp0[3] + temp0[5] )));
temp0[5].x = float((( temp0[7].xxxx + temp0[0].wwww )).x);
temp0[8].x = float((( temp0[6].xxxx + temp0[0].zzzz )).x);
temp0[8].x = float((( temp0[2].wwww + -temp0[8].xxxx )).x);
temp0[5].y = float(( temp0[8].xxxx .y));
temp0[8].x = float((( temp0[0].yyyy + -temp0[6].yyyy )).x);
temp0[5].z = float(( temp0[8].xxxx .z));
temp0[5].w = float(( temp0[2].yyyy .w));
temp0[4] = vec4((( temp0[4] + temp0[5] )));
temp0[5].x = float((( temp0[0].xxxx + -temp0[7].zzzz )).x);
temp0[0].x = float((( temp0[0].yyyy + temp0[6].yyyy )).x);
temp0[5].y = float(( temp0[0].xxxx .y));
temp0[0].x = float((( temp0[6].xxxx + temp0[7].yyyy )).x);
temp0[0].x = float((( temp0[2].wwww + -temp0[0].xxxx )).x);
temp0[5].z = float(( temp0[0].xxxx .z));
temp0[5].w = float(( temp0[2].zzzz .w));
temp0[1] = vec4((( temp0[1] + temp0[5] )));
temp0[0].w = float(((vec4(1,1,1,1)).w));
temp0[0].x = float(((in_0.xxxx).x));
temp0[0].y = float(((in_0.yyyy).y));
temp0[0].z = float(((in_4.wwww).z));
temp0[2].w = float(((vec4(1,1,1,1)).w));
temp0[2].x = float(dot(vec4( temp0[3] ), vec4( temp0[0] )));
temp0[5].x = float(dot(vec4( temp0[4] ), vec4( temp0[0] )));
temp0[2].y = float(( temp0[5].xxxx .y));
temp0[0].x = float(dot(vec4( temp0[1] ), vec4( temp0[0] )));
temp0[2].z = float(( temp0[0].xxxx .z));
temp0[0].x = float(dot(vec3( temp0[3].xyzz ), vec3((in_4.xyzz))));
temp0[5].x = float(dot(vec3( temp0[4].xyzz ), vec3((in_4.xyzz))));
temp0[0].y = float(( temp0[5].xxxx .y));
temp0[5].x = float(dot(vec3( temp0[1].xyzz ), vec3((in_4.xyzz))));
temp0[0].z = float(( temp0[5].xxxx .z));
temp0[5].x = float(dot(vec3( temp0[3].xyzz ), vec3((in_5.xyzz))));
temp0[6].x = float(dot(vec3( temp0[4].xyzz ), vec3((in_5.xyzz))));
temp0[5].y = float(( temp0[6].xxxx .y));
temp0[6].x = float(dot(vec3( temp0[1].xyzz ), vec3((in_5.xyzz))));
temp0[5].z = float(( temp0[6].xxxx .z));
temp0[6].x = float(uintBitsToFloat((uvec4(gl_InstanceID) *
uvec4(uvec4(ivec4(3,3,3,3))))).x);
temp0[6].xyz =
vec3(intBitsToFloat(ivec4((uvec4(floatBitsToUint(temp0[6].xxxx)) +
uvec4(uvec4(ivec4(0,1,2,2)))))).xyz);
addr0 = int(floatBitsToInt(temp0[6].xxxx));
temp0[3] = vec4((uintBitsToFloat(vsconst0[addr0 + 199])));
addr0 = int(floatBitsToInt(temp0[6].yyyy));
temp0[4] = vec4((uintBitsToFloat(vsconst0[addr0 + 199])));
addr0 = int(floatBitsToInt(temp0[6].zzzz));
temp0[1] = vec4((uintBitsToFloat(vsconst0[addr0 + 199])));
temp0[6].x = float(dot(vec4( temp0[3] ), vec4( temp0[2] )));
temp0[7].x = float(dot(vec4( temp0[4] ), vec4( temp0[2] )));
temp0[6].y = float(( temp0[7].xxxx .y));
temp0[2].x = float(dot(vec4( temp0[1] ), vec4( temp0[2] )));
temp0[6].z = float(( temp0[2].xxxx .z));
temp0[8].x = float(dot(vec3( temp0[3].xyzz ), vec3( temp0[0].xyzz )));
temp0[9].x = float(dot(vec3( temp0[4].xyzz ), vec3( temp0[0].xyzz )));
temp0[8].y = float(( temp0[9].xxxx .y));
temp0[0].x = float(dot(vec3( temp0[1].xyzz ), vec3( temp0[0].xyzz )));
temp0[8].z = float(( temp0[0].xxxx .z));
temp0[0].x = float(dot(vec3( temp0[8].xyzz ), vec3( temp0[8].xyzz )));
temp0[0].x = float(inversesqrt( temp0[0].xxxx .x));
temp0[0].xyz = vec3((( temp0[8].xyzz * temp0[0].xxxx )).xyz);
temp0[3].x = float(dot(vec3( temp0[3].xyzz ), vec3( temp0[5].xyzz )));
temp0[4].x = float(dot(vec3( temp0[4].xyzz ), vec3( temp0[5].xyzz )));
temp0[3].y = float(( temp0[4].xxxx .y));
temp0[1].x = float(dot(vec3( temp0[1].xyzz ), vec3( temp0[5].xyzz )));
temp0[3].z = float(( temp0[1].xxxx .z));
temp0[1].x = float(dot(vec3( temp0[3].xyzz ), vec3( temp0[3].xyzz )));
temp0[1].x = float(inversesqrt( temp0[1].xxxx .x));
temp0[1].xyz = vec3((( temp0[3].xyzz * temp0[1].xxxx )).xyz);
temp0[3].xyz = vec3((( temp0[0].zxyy * temp0[1].yzxx )).xyz);
temp0[3].xyz = vec3(( temp0[0].yzxx * temp0[1].zxyy + -temp0[3].xyzz
).xyz);
temp0[3].xyz = vec3((( temp0[3].xyzz * (in_5.wwww))).xyz);
temp0[4].zw = vec2(((in_3.wwzw).zw));
temp0[4].xy = vec2(((in_3.xyyy) * uintBitsToFloat(vsconst0[223].xyyy) +
uintBitsToFloat(vsconst0[223].zwww)).xy);
temp0[0].xyz = vec3((( temp0[0].xyzz *
uintBitsToFloat(vsconst0[5].xxxx))).xyz);
temp0[5] = vec4(((uintBitsToFloat(vsconst0[1]) * temp0[6].xxxx )));
temp0[5] = vec4((uintBitsToFloat(vsconst0[2]) * temp0[7].xxxx +
temp0[5] ));
temp0[2] = vec4((uintBitsToFloat(vsconst0[3]) * temp0[2].xxxx +
temp0[5] ));
temp0[2] = vec4((( temp0[2] + uintBitsToFloat(vsconst0[4]))));
temp0[5].xyz = vec3((( temp0[6].xyzz *
uintBitsToFloat(vsconst0[0].wwww))).xyz);
temp0[6].x = float(( temp0[1].xxxx .x));
temp0[6].y = float(( temp0[3].xxxx .y));
temp0[6].z = float(( temp0[0].xxxx .z));
temp0[6].xyz = vec3(( temp0[6].xyzx .xyz));
temp0[7].x = float(( temp0[1].yyyy .x));
temp0[7].y = float(( temp0[3].yyyy .y));
temp0[7].z = float(( temp0[0].yyyy .z));
temp0[7].xyz = vec3(( temp0[7].xyzx .xyz));
temp0[1].x = float(( temp0[1].zzzz .x));
temp0[1].y = float(( temp0[3].zzzz .y));
temp0[1].z = float(( temp0[0].zzzz .z));
temp0[0].xyz = vec3(( temp0[1].xyzx .xyz));
ex_g11 = vec4(( temp0[6] ));
ex_g12 = vec4(( temp0[7] ));
ex_g13 = vec4(( temp0[0] ));
gl_Position = vec4(( temp0[2] ));
ex_g9 = vec4(( temp0[4] ));
ex_g10 = vec4(( temp0[5] ));
gl_Position.y = gl_Position.y * winsys_adjust.y;
gl_Position.z = dot(gl_Position, vec4(0.0, 0.0, winsys_adjust.zw));
}
vrend_report_buffer_error: context error reported 3 "Xorg" Illegal
command buffer 149816321
--
Sincerely,
Chen Fan
[-- Attachment #2: heaven.log --]
[-- Type: text/x-log, Size: 5549 bytes --]
[root@localhost Unigine_Heaven-4.0]# ./heaven
Loading "/root/Desktop/Unigine_Heaven-4.0/bin/../data/heaven_4.0.cfg"...
Loading "libGPUMonitor_x64.so"...
Loading "libGL.so.1"...
Loading "libopenal.so.1"...
Set 1920x1080 fullscreen video mode
Set 1.00 gamma value
Unigine engine http://unigine.com/
Binary: Linux 64bit GCC 4.4.5 Release Feb 13 2013 r11284
Features: OpenGL OpenAL XPad360 Joystick Flash Editor
App path: /root/Desktop/Unigine_Heaven-4.0/bin/
Data path: /root/Desktop/Unigine_Heaven-4.0/data/
Save path: /root/.Heaven/
---- System ----
System: Linux 4.6.7-200.fc23.x86_64 x86_64
CPU: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz 2194MHz MMX SSE SSE2 SSE3 SSSE3 SSE41 SSE42 AVX HTT x4
GPU: Unknown GPU x1
System memory: 3856 MB
Video memory: 256 MB
Sync threads: 3
Async threads: 4
---- MathLib ----
Set SSE2 simd processor
---- Sound ----
Renderer: OpenAL Soft
OpenAL vendor: OpenAL Community
OpenAL renderer: OpenAL Soft
OpenAL version: 1.1 ALSOFT 1.17.1
Found AL_EXT_LINEAR_DISTANCE
Found AL_EXT_OFFSET
Found ALC_EXT_EFX
Found EFX Filter
Found EFX Reverb
Found EAX Reverb
Found QUAD16 format
Found 51CHN16 format
Found 61CHN16 format
Found 71CHN16 format
Maximum sources: 256
Maximum effect slots: 4
Maximum auxiliary sends: 2
---- Render ----
GLRender::GLRender(): Unknown GPU
OpenGL vendor: Red Hat
OpenGL renderer: Gallium 0.4 on virgl
OpenGL version: 3.3 (Core Profile) Mesa 11.2.0-devel (git-24ea81a)
OpenGL flags: Core Profile
Found required GL_ARB_map_buffer_range
Found required GL_ARB_vertex_array_object
Found required GL_ARB_draw_instanced
Found required GL_ARB_draw_elements_base_vertex
Found required GL_ARB_transform_feedback
Found required GL_ARB_half_float_vertex
Found required GL_ARB_half_float_pixel
Found required GL_ARB_framebuffer_object
Found required GL_ARB_texture_multisample
Found required GL_ARB_uniform_buffer_object
Found required GL_ARB_geometry_shader4
Found optional GL_ARB_blend_func_extended
Found optional GL_ARB_shader_bit_encoding
Found optional GL_ARB_texture_compression_rgtc
Shading language: 3.30
Maximum texture size: 16384
Maximum texture units: 48
Maximum texture renders: 8
---- Physics ----
Physics: Multi-threaded
---- PathFind ----
PathFind: Multi-threaded
GPUMonitorPlugin::init(): can't initialize GPUMonitor
EnginePlugins::init(): can't initialize "GPUMonitor" plugin
---- Interpreter ----
Version: 2.52
Loading "heaven/unigine.cpp" 47ms
Unigine~# render_restart
Loading "heaven/locale/unigine.en" dictionary
Loading "core/materials/default/unigine_post.mat" 23 materials 50 shaders 10ms
Loading "core/materials/default/unigine_render.mat" 47 materials 2368 shaders 13ms
Loading "core/materials/default/unigine_mesh.mat" 5 materials 3386 shaders 19ms
Loading "core/materials/default/unigine_mesh_lut.mat" 2 materials 1062 shaders 4ms
Loading "core/materials/default/unigine_mesh_paint.mat" 2 materials 1158 shaders 7ms
Loading "core/materials/default/unigine_mesh_tessellation.mat" 5 materials 3332 shaders 15ms
Loading "core/materials/default/unigine_mesh_tessellation_paint.mat" 2 materials 2276 shaders 9ms
Loading "core/materials/default/unigine_mesh_triplanar.mat" 1 material 112 shaders 2ms
Loading "core/materials/default/unigine_mesh_overlap.mat" 1 material 300 shaders 4ms
Loading "core/materials/default/unigine_mesh_terrain.mat" 1 material 813 shaders 4ms
Loading "core/materials/default/unigine_mesh_layer.mat" 1 material 84 shaders 2ms
Loading "core/materials/default/unigine_mesh_noise.mat" 1 material 106 shaders 3ms
Loading "core/materials/default/unigine_mesh_stem.mat" 2 materials 2180 shaders 18ms
Loading "core/materials/default/unigine_mesh_wire.mat" 1 material 45 shaders 0ms
Loading "core/materials/default/unigine_terrain.mat" 1 material 1980 shaders 7ms
Loading "core/materials/default/unigine_grass.mat" 2 materials 474 shaders 9ms
Loading "core/materials/default/unigine_particles.mat" 1 material 109 shaders 2ms
Loading "core/materials/default/unigine_billboard.mat" 1 material 51 shaders 2ms
Loading "core/materials/default/unigine_billboards.mat" 2 materials 840 shaders 4ms
Loading "core/materials/default/unigine_volume.mat" 6 materials 53 shaders 9ms
Loading "core/materials/default/unigine_gui.mat" 1 material 82 shaders 1ms
Loading "core/materials/default/unigine_water.mat" 1 material 533 shaders 26ms
Loading "core/materials/default/unigine_sky.mat" 1 material 21 shaders 39ms
Loading "core/materials/default/unigine_decal.mat" 1 material 99 shaders 2ms
Loading "core/properties/unigine.prop" 2 properties 0ms
Unigine Heaven Benchmark 4.0 (4.0)Unigine~# world_load heaven/heaven
Loading "heaven/heaven.cpp" 132ms
Loading "heaven/materials/heaven_base.mat" 7 materials 23ms
Loading "heaven/materials/heaven_environment.mat" 13 materials 1363ms
Loading "heaven/materials/heaven_ruins.mat" 27 materials 2997ms
Loading "heaven/materials/heaven_buildings.mat" 58 materials 3905ms
Loading "heaven/materials/heaven_props.mat" 10 materials 790ms
Loading "heaven/materials/heaven_sfx.mat" 11 materials 13ms
Loading "heaven/materials/heaven_fort.mat" 15 materials 984ms
Loading "heaven/materials/heaven_airship.mat" 26 materials 5472ms
Loading "heaven/heaven.world" 19053ms
Failed to translate shader in available space - trying again
Failed to translate shader in available space - trying again
Failed to translate shader in available space - trying again
Failed to translate shader in available space - trying again
Received signal SIGSEGV, invalid memory reference
AL lib: (EE) alc_cleanup: 1 device not closed
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] fail to test virtio-gpu with heaven benchmark4.0
2016-08-29 8:54 [Qemu-devel] fail to test virtio-gpu with heaven benchmark4.0 Chen Fan
@ 2016-08-29 9:03 ` Marc-André Lureau
0 siblings, 0 replies; 2+ messages in thread
From: Marc-André Lureau @ 2016-08-29 9:03 UTC (permalink / raw)
To: Chen Fan; +Cc: kraxel, marcandre lureau, qemu-devel
hi
----- Original Message -----
> Hi all,
>
> I tried to use virtio-gpu to do some test, the glmark2 works, but when I
> ran heaven benchmark in Guest,
>
> the application could not be ran. I have collected the output message.
> pls see attachment file.
>
> I built my environment according to the requirement in
> https://copr.fedorainfracloud.org/coprs/kraxel/virgl/,
It should no longer be necessary, everything is in fedora 24
See also:
http://blog.wikichoon.com/2016/05/spice-openglvirgl-acceleration-on.html
> both guest/host kernel version: 4.6
>
> I used the latest qemu forked from master branch
> (e00da552a0dc82f4ec7896281eada7201e69f1db),
>
> and run qemu with:
>
> ~/data/linux-src/qemu$ ./x86_64-softmmu/qemu-system-x86_64 -vga virtio
> -display gtk,gl=on --enable-kvm -m 4000 -smp 4,sockets=1,cores=4 -hda
> /home/chenfan/imgs/fedora23.qcow2 -cpu host
>
> when running the heaven benchmark application the qemu has some output
> as following, I don't know how to fix that,
>
> do you have some hints? thanks in advance :)
>
>
> the qemu output messages:
> (qemu-system-x86_64:4628): Gdk-WARNING **:
> gdk_gl_context_set_required_version - GL context versions less than 3.2
> are not supported.
> gl_version 33 - core profile enabled
> vrend_compile_shader: context error reported 3 "Xorg" Illegal shader 0
> shader failed to compile
> 0:23(34): error: could not implicitly convert operands to arithmetic
> operator
> 0:23(34): error: operands to arithmetic operators must be numeric
> 0:23(17): error: no matching function for call to
> `uintBitsToFloat(error)'; candidates are:
> 0:23(17): error: vec4 uintBitsToFloat(uvec4)
> 0:23(17): error: float uintBitsToFloat(uint)
> 0:23(17): error: vec2 uintBitsToFloat(uvec2)
> 0:23(17): error: vec3 uintBitsToFloat(uvec3)
> 0:23(17): error: vec4 uintBitsToFloat(uvec4)
> 0:23(12): error: cannot construct `vec4' from a non-numeric data type
> (snip)
> vrend_report_buffer_error: context error reported 3 "Xorg" Illegal
> command buffer 149816321
This is a virglrenderer bug, translating a shader. You could try with virglrenderer from git, and if it still fails, report a bug to the virgl mailing list.
Regarding benchmarks, those aren't so great if you compare them with the host today (especially "artificial" benchmarks like glmark2), I would say it's between 30-50% of host, so there is room for improvements.
thanks
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-08-29 9:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-29 8:54 [Qemu-devel] fail to test virtio-gpu with heaven benchmark4.0 Chen Fan
2016-08-29 9:03 ` Marc-André Lureau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).