Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.2.1 VirGL crashes the QEMULauncher (pointer being freed was not allocated) #3053

Closed
conath opened this issue Aug 26, 2021 · 13 comments · Fixed by #4846
Closed

2.2.1 VirGL crashes the QEMULauncher (pointer being freed was not allocated) #3053

conath opened this issue Aug 26, 2021 · 13 comments · Fixed by #4846
Labels
crash Application crashes macOS macOS issues
Milestone

Comments

@conath
Copy link
Contributor

conath commented Aug 26, 2021

While testing a 3D game in my Ubuntu ARM VM it slowed down to a crawl when the 3D started to render (first frame) and the guest became unresponsive. After a few seconds, the VM's QEMULauncher crashed.

Configuration

  • UTM Version: 2.2.1 (33) built from latest source
  • OS Version: 11.5.2
  • Intel or Apple Silicon? Apple Silicon

Crash log (symbolicated)

QEMULauncher(8105,0x1002e7d40) malloc: *** error for object 0xaaaaaaaa00008cd5: pointer being freed was not allocated
 

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x000000018be5ce68 __pthread_kill + 8
1   libsystem_pthread.dylib       	0x000000018be8f43c pthread_kill + 292
2   libsystem_c.dylib             	0x000000018bdd7454 abort + 124
3   libsystem_malloc.dylib        	0x000000018bcbfecc malloc_vreport + 560
4   libsystem_malloc.dylib        	0x000000018bcc3514 malloc_report + 64
5   libsystem_malloc.dylib        	0x000000018bcb25cc free + 516
6   com.utmapp.virglrenderer.1    	0x0000000101efe394 strbuf_free + 28
7   com.utmapp.virglrenderer.1    	0x0000000101efe350 strarray_free + 84
8   com.utmapp.virglrenderer.1    	0x0000000101efe1b8 vrend_shader_destroy + 352
9   com.utmapp.virglrenderer.1    	0x0000000101eea348 vrend_destroy_shader_selector + 56
10  com.utmapp.virglrenderer.1    	0x0000000101eea608 vrend_shader_state_reference + 64
11  com.utmapp.virglrenderer.1    	0x0000000101ef193c vrend_destroy_shader_object + 40
12  com.utmapp.virglrenderer.1    	0x0000000101ee4988 free_object + 96
13  com.utmapp.virglrenderer.1    	0x0000000101ec9488 util_hash_table_destroy + 124
14  com.utmapp.virglrenderer.1    	0x0000000101ee49d0 vrend_object_fini_ctx_table + 36
15  com.utmapp.virglrenderer.1    	0x0000000101ef2bfc vrend_destroy_sub_context + 1016
16  com.utmapp.virglrenderer.1    	0x0000000101ef23d4 vrend_destroy_context + 500
17  com.utmapp.virglrenderer.1    	0x0000000101eddbc0 vrend_decode_ctx_destroy + 36
18  com.utmapp.virglrenderer.1    	0x0000000101eda020 virgl_context_destroy_func + 40
19  com.utmapp.virglrenderer.1    	0x0000000101ec9140 util_hash_table_remove + 140
20  com.utmapp.virglrenderer.1    	0x0000000101eda13c virgl_context_remove + 68
21  com.utmapp.virglrenderer.1    	0x0000000101ec4a78 virgl_renderer_context_destroy + 24
22  com.utmapp.qemu-aarch64-softmmu	0x0000000100900a58 virtio_gpu_virgl_process_cmd + 2176
23  com.utmapp.qemu-aarch64-softmmu	0x00000001008fe3a8 virtio_gpu_process_cmdq + 164
24  com.utmapp.qemu-aarch64-softmmu	0x00000001008fff48 0x100334000 + 6078280
25  com.utmapp.qemu-aarch64-softmmu	0x0000000100ac32b8 aio_bh_poll + 188
26  com.utmapp.qemu-aarch64-softmmu	0x0000000100ab19c4 aio_dispatch + 40
27  com.utmapp.qemu-aarch64-softmmu	0x0000000100ac3dc0 0x100334000 + 7929280
28  com.utmapp.glib-2.0.0         	0x0000000101d53ecc g_main_dispatch + 440
29  com.utmapp.glib-2.0.0         	0x0000000101d53d00 g_main_context_dispatch + 56
30  com.utmapp.qemu-aarch64-softmmu	0x0000000100acd444 main_loop_wait + 416
31  com.utmapp.qemu-aarch64-softmmu	0x00000001005bbb18 qemu_main_loop + 108
32  com.utmapp.QEMULauncher       	0x0000000100093ca4 runQemu + 88 (Bootstrap.c:75)
33  com.utmapp.QEMULauncher       	0x0000000100093d00 startQemuProcess + 76 (Bootstrap.c:108)
34  libdyld.dylib                 	0x000000018bead430 start + 4

Full log: virgl-crash-2.2.1.log

Debug log
debug.log

Upload VM
mega.nz

@conath conath added crash Application crashes macOS macOS issues labels Aug 26, 2021
@osy
Copy link
Contributor

osy commented Aug 26, 2021

What commands did you run in Ubuntu to reproduce it?

@osy
Copy link
Contributor

osy commented Aug 26, 2021

And is it possible to test with https://gist.github.com/akihikodaki/87df4149e7ca87f18dc56807ec5a1bc5

@conath
Copy link
Contributor Author

conath commented Aug 26, 2021

I tried to play SuperTuxKart, froze after clicking on "Singleplayer" in the main menu, after which a menu is loaded that contains 3D rendering. And I will take a look at that, sure.

@osy
Copy link
Contributor

osy commented Aug 26, 2021

And it ran fine with Metal (aside from the memory leak issues)? Maybe we a clue to the ANGLE memory leak then...

@conath
Copy link
Contributor Author

conath commented Aug 26, 2021

Yes the game worked fine using the previous beta. (apart from the memory usage)

@conath
Copy link
Contributor Author

conath commented Aug 26, 2021

A very similar crash occurred when using the https://gist.github.com/akihikodaki/87df4149e7ca87f18dc56807ec5a1bc5 installed via brew https://github.com/knazarov/homebrew-qemu-virgl .

From the crash log:

qemu-system-aarch64(37087,0x16bd73000) malloc: *** error for object 0x700000003a8f4fc1: pointer being freed was not allocated


Thread 2 Crashed:
0   libsystem_kernel.dylib        	0x000000018be5ce68 __pthread_kill + 8
1   libsystem_pthread.dylib       	0x000000018be8f43c pthread_kill + 292
2   libsystem_c.dylib             	0x000000018bdd7454 abort + 124
3   libsystem_malloc.dylib        	0x000000018bcbfecc malloc_vreport + 560
4   libsystem_malloc.dylib        	0x000000018bcc3514 malloc_report + 64
5   libsystem_malloc.dylib        	0x000000018bcb25cc free + 516
6   libvirglrenderer.1.dylib      	0x00000001054c0e70 vrend_destroy_shader_selector + 224
7   libvirglrenderer.1.dylib      	0x00000001054bd280 free_object + 44
8   libvirglrenderer.1.dylib      	0x00000001054ae230 util_hash_table_destroy + 76
9   libvirglrenderer.1.dylib      	0x00000001054c93a0 vrend_destroy_sub_context + 2596
10  libvirglrenderer.1.dylib      	0x00000001054c8324 vrend_destroy_context + 628
11  libvirglrenderer.1.dylib      	0x00000001054ba234 vrend_decode_ctx_destroy + 24
12  libvirglrenderer.1.dylib      	0x00000001054ae0b0 util_hash_table_remove + 188
13  qemu-system-aarch64           	0x00000001043f16bc 0x1041a0000 + 2430652
14  qemu-system-aarch64           	0x00000001043ef5b4 0x1041a0000 + 2422196
15  qemu-system-aarch64           	0x00000001043f0c4c 0x1041a0000 + 2427980
16  qemu-system-aarch64           	0x0000000104846d18 0x1041a0000 + 6974744
17  qemu-system-aarch64           	0x0000000104837a0c 0x1041a0000 + 6912524
18  qemu-system-aarch64           	0x0000000104847658 0x1041a0000 + 6977112
19  libglib-2.0.0.dylib           	0x0000000105a185f0 g_main_context_dispatch + 336
20  qemu-system-aarch64           	0x000000010484fdb8 0x1041a0000 + 7011768
21  qemu-system-aarch64           	0x00000001045fd590 0x1041a0000 + 4576656
22  qemu-system-aarch64           	0x00000001041ab3d0 0x1041a0000 + 46032
23  qemu-system-aarch64           	0x00000001041cf5e0 0x1041a0000 + 194016
24  qemu-system-aarch64           	0x000000010483b338 0x1041a0000 + 6927160
25  libsystem_pthread.dylib       	0x000000018be8f878 _pthread_start + 320
26  libsystem_pthread.dylib       	0x000000018be8a5e0 thread_start + 8

And this is the command I used to run the VM:

qemu-system-aarch64 -nodefaults -device virtio-gpu-gl-pci -cpu host -smp cpus=4,sockets=1,cores=4,threads=1 -machine virt-6.1,highmem=off -accel hvf -bios /Applications/UTM.app/Contents/Resources/qemu/edk2-aarch64-code.fd -m 4096 -device ich9-intel-hda -device hda-duplex -name "Ubuntu ARM 2.2.0" -device qemu-xhci,id=usb-bus -device usb-tablet,bus=usb-bus.0 -device usb-mouse,bus=usb-bus.0 -device usb-kbd,bus=usb-bus.0 -device qemu-xhci,id=usb-controller-0 -device usb-storage,drive=drive0,removable=true,bootindex=0 -drive if=none,media=cdrom,id=drive0 -device virtio-blk-pci,drive=drive1,bootindex=1 -drive "if=none,media=disk,id=drive1,file=/Users/chris/Library/Containers/com.utmapp.UTM/Data/Documents/Ubuntu ARM 2.2.0.utm/Images/disk-0.qcow2,cache=writethrough" -device virtio-net-pci,mac=9E:FF:F7:C9:01:AF,netdev=net0 -netdev user,id=net0 -uuid E582C6D5-8ABB-4C23-8F5E-075C842F14B0 -rtc base=localtime -display cocoa,gl=es

@osy
Copy link
Contributor

osy commented Aug 26, 2021

Okay so as expected this is an ANGLE bug. I'll have to look more into it. Is this something that happens often or just with supertuxkart?

@conath
Copy link
Contributor Author

conath commented Aug 26, 2021

It crashes in the same way when running the "piglit" test.

@conath
Copy link
Contributor Author

conath commented Aug 26, 2021

Just going to leave the full terminal output here in case it's helpful:

terminal output running piglit
qemu-system-aarch64 -nodefaults -device virtio-gpu-gl-pci -cpu host -smp cpus=4,sockets=1,cores=4,threads=1 -machine virt-6.1,highmem=off -accel hvf -bios /Applications/UTM.app/Contents/Resources/qemu/edk2-aarch64-code.fd -m 4096 -device ich9-intel-hda -device hda-duplex -name "Ubuntu ARM 2.2.0" -device qemu-xhci,id=usb-bus -device usb-tablet,bus=usb-bus.0 -device usb-mouse,bus=usb-bus.0 -device usb-kbd,bus=usb-bus.0 -device qemu-xhci,id=usb-controller-0 -device usb-storage,drive=drive0,removable=true,bootindex=0 -drive if=none,media=cdrom,id=drive0 -device virtio-blk-pci,drive=drive1,bootindex=1 -drive "if=none,media=disk,id=drive1,file=/Users/chris/Library/Containers/com.utmapp.UTM/Data/Documents/Ubuntu ARM 2.2.0.utm/Images/disk-0.qcow2,cache=writethrough" -device virtio-net-pci,mac=9E:FF:F7:C9:01:AF,netdev=net0 -netdev user,id=net0 -uuid E582C6D5-8ABB-4C23-8F5E-075C842F14B0 -rtc base=localtime -display cocoa,gl=es
audio: Failed to create voice `adc'
gl_version 30 - es profile enabled
WARNING: running without ARB/KHR robustness in place may crash
audio: Failed to create voice `adc'
GLSL feature level 130
audio: Failed to create voice `adc'
audio: Failed to create voice `adc'
audio: Failed to create voice `adc'
vrend_compile_shader: context error reported 3 "Xorg" Illegal shader 0
shader failed to compile
ERROR: 0:5: 'fsout_c0' : must explicitly specify all locations when using multiple fragment outputs
ERROR: 0:7: 'fsout_c1' : must explicitly specify all locations when using multiple fragment outputs

fs: 77 GLSL:
   1: #version 300 es
   2:
   3: precision highp float;
   4: precision highp int;
   5:
   6:   out  vec4 fsout_c0;
   7:
   8:   out  vec4 fsout_c1;
   9: vec4 temp0[1];
  10: vec4 temp1[1];
  11: uniform uvec4 fsconst0[1];
  12:
  13: void main(void)
  14: {
  15: temp0[0] = vec4(((gl_FragCoord)));
  16: temp0[0].y = float(((gl_FragCoord) * uintBitsToFloat(fsconst0[0].xxxx) + uintBitsToFloat(fsconst0[0].yyyy)).y);
  17: temp1[0].x = float(uintBitsToFloat(uint(lessThan(vec4((vec4(25,25,25,25))), vec4( temp0[0].xxxx )).x) * uint(0xffffffff)));
  18: temp1[0].x = float(uintBitsToFloat((floatBitsToUint(temp1[0].xxxx) & floatBitsToUint(vec4(1,1,1,1)))).x);
  19: if (any(lessThan( -temp1[0].xxxx , vec4(0.0))))
  20: discard;
  21: fsout_c0 = vec4(((vec4(0,1,0,0))));
  22: fsout_c1 = vec4(((vec4(1,0,1,0))));
  23: }
  24:

dropping rendering due to missing shaders: Xorg
qemu-system-aarch64(37147,0x16d48f000) malloc: *** error for object 0x128535600: pointer being freed was not allocated
qemu-system-aarch64(37147,0x16d48f000) malloc: *** set a breakpoint in malloc_error_break to debug
[1]    37147 abort      qemu-system-aarch64 -nodefaults -device virtio-gpu-gl-pci -cpu host -smp

@osy
Copy link
Contributor

osy commented Aug 30, 2021

@conath Can you try with one 1 core (-smp 1)? I'm wondering if there's some sort of race condition where two threads are trying to free the same resource.

@conath
Copy link
Contributor Author

conath commented Aug 30, 2021

The behavior is the same when just using one CPU core.

Debug Log
Running:  -L /Applications/UTM.app/Contents/Resources/qemu -S -qmp tcp:127.0.0.1:4000,server,nowait -nodefaults -vga none -spice "unix=on,addr=/Users/chris/Library/Group Containers/WDNLXAD4W8.com.utmapp.UTM/E582C6D5-8ABB-4C23-8F5E-075C842F14B0.spice,disable-ticketing=on,image-compression=off,playback-compression=off,streaming-video=off,gl=on" -device virtio-ramfb -cpu host -smp cpus=1,sockets=1,cores=1,threads=1 -machine virt-6.1,highmem=off -accel hvf -accel tcg,tb-size=1024 -bios /Applications/UTM.app/Contents/Resources/qemu/edk2-aarch64-code.fd -boot menu=on -m 4096 -device ich9-intel-hda -device hda-duplex -name "Ubuntu ARM 2.2.0" -device qemu-xhci,id=usb-bus -device usb-tablet,bus=usb-bus.0 -device usb-mouse,bus=usb-bus.0 -device usb-kbd,bus=usb-bus.0 -device qemu-xhci,id=usb-controller-0 -chardev spicevmc,name=usbredir,id=usbredirchardev0 -device usb-redir,chardev=usbredirchardev0,id=usbredirdev0,bus=usb-controller-0.0 -device usb-storage,drive=drive0,removable=true,bootindex=0 -drive if=none,media=cdrom,id=drive0 -device virtio-blk-pci,drive=drive1,bootindex=1 -drive "if=none,media=disk,id=drive1,file=/Users/chris/Library/Containers/com.utmapp.UTM/Data/Documents/Ubuntu ARM 2.2.0.utm/Images/disk-0.qcow2,cache=writethrough" -device virtio-net-pci,mac=9E:FF:F7:C9:01:AF,netdev=net0 -netdev vmnet-macos,mode=bridged,id=net0 -device virtio-serial -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -chardev spicevmc,id=vdagent,debug=0,name=vdagent -uuid E582C6D5-8ABB-4C23-8F5E-075C842F14B0 -rtc base=localtime
qemu-aarch64-softmmu: -netdev vmnet-macos,mode=bridged,id=net0: info: Started vmnet interface with configuration:
qemu-aarch64-softmmu: -netdev vmnet-macos,mode=bridged,id=net0: info: MTU:              1500
qemu-aarch64-softmmu: -netdev vmnet-macos,mode=bridged,id=net0: info: Max packet size:  1514
qemu-aarch64-softmmu: -netdev vmnet-macos,mode=bridged,id=net0: info: MAC:              c2:07:14:ed:b7:a4
qemu-aarch64-softmmu: -netdev vmnet-macos,mode=bridged,id=net0: info: UUID:             6C679735-B265-4AB8-8F4B-2C0F7B5A82A2
qemu-aarch64-softmmu: warning: Spice: playback:0 (0x1410cf920): setsockopt failed, Operation not supported on socket
qemu-aarch64-softmmu: warning: Spice: record:0 (0x1410cf9d0): setsockopt failed, Operation not supported on socket
gl_version 30 - es profile enabled
WARNING: running without ARB/KHR robustness in place may crash
GLSL feature level 130
vrend_compile_shader: context error reported 2 "Xorg" Illegal shader 0
shader failed to compile
ERROR: 0:11: 'fsout_c0' : must explicitly specify all locations when using multiple fragment outputs
ERROR: 0:13: 'fsout_c1' : must explicitly specify all locations when using multiple fragment outputs

fs: 47 GLSL:
   1: #version 300 es
   2: 
   3: precision highp float;
   4: precision highp int;
   5: 
   6:    in  vec4 vso_g9A0_f;
   7: 
   8:    in  vec4 vso_g10A0_f;
   9: 
  10:    in  vec4 vso_g11A0_f;
  11: 
  12:   out  vec4 fsout_c0;
  13: 
  14:   out  vec4 fsout_c1;
  15: vec4 temp0[8];
  16: uniform fsubo1 { vec4 fsubo1contents[9]; };
  17: uniform fsubo2 { vec4 fsubo2contents[37]; };
  18: uniform fsubo3 { vec4 fsubo3contents[2]; };
  19: uniform highp  sampler2D fssamp0;
  20: uniform highp  sampler2D fssamp1;
  21: 
  22: void main(void)
  23: {
  24: temp0[0].x = float(((vso_g10A0_f.wwww).x));
  25: temp0[0].yz = vec2(((vso_g11A0_f.yxyy).yz));
  26: temp0[1].xy = vec2(((vso_g10A0_f.xyyy).xy));
  27: temp0[1] = vec4((texture(fssamp0,  temp0[1] .xy)));
  28: temp0[2].xyz = vec3(( temp0[1] .xyz));
  29: temp0[3].x = float(uintBitsToFloat(uint(lessThan(vec4((vec4(0,0,0,0))), vec4((vso_g10A0_f.zzzz))).x) * uint(0xffffffff)));
  30: if (bool(floatBitsToUint(temp0[3].xxxx).x)) {
  31: 	temp0[3].xy = vec2(( temp0[1].zyzz .xy));
  32: 	temp0[3].zw = vec2(((vec4(0.66666669,0.66666669,-1,0.66666669)).zw));
  33: 	temp0[4].xy = vec2(( temp0[1].yzyy .xy));
  34: 	temp0[4].zw = vec2(((vec4(-0.33333334,-0.33333334,0,-0.33333334)).zw));
  35: 	temp0[5].x = float(uintBitsToFloat(uint(greaterThanEqual(vec4( temp0[1].yyyy ), vec4( temp0[1].zzzz )).x) * uint(0xffffffff)));
  36: 	temp0[5].x = float(uintBitsToFloat((floatBitsToUint(temp0[5].xxxx) & floatBitsToUint(vec4(1,1,1,1)))).x);
  37: 	temp0[3] = mix(vec4( temp0[3] ), vec4( temp0[4] ), vec4( temp0[5].xxxx ));
  38: 	temp0[4].xyz = vec3(( temp0[3].xywx .xyz));
  39: 	temp0[4].w = float(( temp0[1].xxxx .w));
  40: 	temp0[5].x = float(( temp0[1].xxxx .x));
  41: 	temp0[5].yzw = vec3(( temp0[3].zyzx .yzw));
  42: 	temp0[3].x = float(uintBitsToFloat(uint(greaterThanEqual(vec4( temp0[1].xxxx ), vec4( temp0[3].xxxx )).x) * uint(0xffffffff)));
  43: 	temp0[3].x = float(uintBitsToFloat((floatBitsToUint(temp0[3].xxxx) & floatBitsToUint(vec4(1,1,1,1)))).x);
  44: 	temp0[3] = mix(vec4( temp0[4] ), vec4( temp0[5] ), vec4( temp0[3].xxxx ));
  45: 	temp0[4].x = float((min( temp0[3].wwww ,  temp0[3].yyyy )).x);
  46: 	temp0[4].x = float((( temp0[3].xxxx  +  -temp0[4].xxxx )).x);
  47: 	temp0[5].x = float((( temp0[3].wwww  +  -temp0[3].yyyy )).x);
  48: 	temp0[6].x = float(((vec4(6,6,6,6)) *  temp0[4].xxxx  + (vec4(1e-10,1e-10,1e-10,1e-10))).x);
  49: 	temp0[6].x = float(1.0/( temp0[6].xxxx ));
  50: 	temp0[5].x = float(( temp0[5].xxxx  *  temp0[6].xxxx  +  temp0[3].zzzz ).x);
  51: 	temp0[5].x = float(( abs(temp0[5]).xxxx .x));
  52: 	temp0[6].x = float((( temp0[3].xxxx  + (vec4(1e-10,1e-10,1e-10,1e-10)))).x);
  53: 	temp0[6].x = float(1.0/( temp0[6].xxxx ));
  54: 	temp0[4].x = float((( temp0[4].xxxx  *  temp0[6].xxxx )).x);
  55: 	temp0[5].y = float(( temp0[4].xxxx .y));
  56: 	temp0[6].x = float(((vso_g10A0_f.zzzz).x));
  57: 	temp0[7].x = float((( temp0[1].wwww  * (vec4(2.5,2.5,2.5,2.5)))).x);
  58: 	temp0[4].x = float((max( temp0[4].xxxx ,  temp0[7].xxxx )).x);
  59: 	temp0[6].y = float(( temp0[4].xxxx .y));
  60: 	temp0[1].x = float(uintBitsToFloat(uint(greaterThanEqual(vec4((vec4(0.5,0.5,0.5,0.5))), vec4( temp0[1].wwww )).x) * uint(0xffffffff)));
  61: 	temp0[1].x = float(uintBitsToFloat((floatBitsToUint(temp0[1].xxxx) & floatBitsToUint(vec4(1,1,1,1)))).x);
  62: 	temp0[1].xy = mix(vec4( temp0[5].xyyy ), vec4( temp0[6].xyyy ), vec4( temp0[1].xxxx )).xy;
  63: 	temp0[4].xyz = vec3((( temp0[1].xxxx  + (vec4(1,0.66666669,0.33333334,0.33333334)))).xyz);
  64: 	temp0[4].xyz = vec3((fract( temp0[4].xyzz )).xyz);
  65: 	temp0[4].xyz = vec3(( temp0[4].xyzz  * (vec4(6,6,6,6)) + (vec4(-3,-3,-3,-3))).xyz);
  66: 	temp0[4].xyz = vec3(( abs(temp0[4]).xyzz .xyz));
  67: 	temp0[4].xyz = vec3((( temp0[4].xyzz  + (vec4(-1,-1,-1,-1)))).xyz);
  68: 	temp0[4].xyz = vec3(( temp0[4].xyzz .xyz));
  69: 	temp0[4].xyz = clamp(temp0[4].xyz, 0.0, 1.0);
  70: 	temp0[1].xyz = mix(vec4((vec4(1,1,1,1))), vec4( temp0[4].xyzz ), vec4( temp0[1].yyyy )).xyz;
  71: 	temp0[1].xyz = vec3((( temp0[3].xxxx  *  temp0[1].xyzz )).xyz);
  72: 	temp0[3].w = float(((vec4(1,1,1,1)).w));
  73: 	temp0[3].x = float(( temp0[1].xxxx .x));
  74: 	temp0[3].y = float(( temp0[1].yyyy .y));
  75: 	temp0[3].z = float(( temp0[1].zzzz .z));
  76: 	temp0[2].xyz = vec3(( temp0[3] .xyz));
  77: 	}
  78: temp0[1].xy = vec2(((vso_g10A0_f.xyyy).xy));
  79: temp0[1].xyz = vec3((texture(fssamp1,  temp0[1] .xy).xyz));
  80: temp0[2].xyz = vec3((( temp0[2].xyzz  * (vso_g9A0_f.xyzz))).xyz);
  81: temp0[2].w = float(( temp0[1].zzzz .w));
  82: temp0[3].x = float(dot(vec3( temp0[0].xyzz ), vec3( temp0[0].xyzz )));
  83: temp0[3].x = float(inversesqrt( temp0[3].xxxx .x));
  84: temp0[0].xyz = vec3((( temp0[0].xyzz  *  temp0[3].xxxx )).xyz);
  85: temp0[3].x = float(dot(vec2( temp0[0].xyyy ), vec2( temp0[0].xyyy )));
  86: temp0[3].x = float(inversesqrt( temp0[3].xxxx .x));
  87: temp0[3].xy = vec2((( temp0[0].xyyy  *  temp0[3].xxxx )).xy);
  88: temp0[0].x = float(( temp0[0].zzzz  * (vec4(0.5,0.5,0.5,0.5)) + (vec4(0.5,0.5,0.5,0.5))).x);
  89: temp0[0].x = float(inversesqrt( abs(temp0[0]).xxxx .x));
  90: temp0[0].x = float(1.0/( temp0[0].xxxx ));
  91: temp0[0].xy = vec2((( temp0[3].xyyy  *  temp0[0].xxxx )).xy);
  92: temp0[0].xy = vec2(((vec4(0.5,0.5,0.5,0.5)) *  temp0[0].xyyy  + (vec4(0.5,0.5,0.5,0.5))).xy);
  93: temp0[0].zw = vec2(( temp0[1].yyxy .zw));
  94: fsout_c0 = vec4(( temp0[2] ));
  95: fsout_c1 = vec4(( temp0[0] ));
  96: }
  97: 

@ktprograms
Copy link
Contributor

FYI with UTM 3.0.1 Beta it doesn't crash when using the virtio-ramfb-gl display device and playing SuperTuxKart, but there are a lot of rendering glitches.

@osy
Copy link
Contributor

osy commented Jan 9, 2022

Right but that’s “expected” due to the software being not mature

@osy osy added this to the v4.1 milestone Dec 27, 2022
@osy osy closed this as completed in #4846 Dec 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crash Application crashes macOS macOS issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants