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

Various Warp3D hangs despite AT function patch applied #4

Open
DvdBoon opened this issue Aug 22, 2016 · 13 comments
Open

Various Warp3D hangs despite AT function patch applied #4

DvdBoon opened this issue Aug 22, 2016 · 13 comments
Labels

Comments

@DvdBoon
Copy link
Contributor

DvdBoon commented Aug 22, 2016

Even with Alain Thellier's patch applied there are certain programs (mostly mwi demos) which hang the system on various stages. E.g. Heavy traffic, Cull Bazaar, Which function is the cause is unknown at the moment. Could still partly be related to issue #3

@DvdBoon DvdBoon added the bug label Aug 22, 2016
@djbase78
Copy link

djbase78 commented Jan 5, 2017

Have the same problems here on Sam440ep with OS4.1FE Update 1

@DvdBoon
Copy link
Contributor Author

DvdBoon commented Jan 5, 2017

It's warp 3d related. And I understand that there is no effort to fix this at the moment seeing the age and number of warpos apps.

@kas1e
Copy link

kas1e commented Jan 6, 2021

@DvdBoon
I give a go and test Mawi demos on x5000. While they render bad (because of warp3d_si, or because of the initial state of warp3d driver, dunno), they still run and I can catch the moments when they hang. I was lucky enough and catch the crash log when it crashes in "heavy traffic". It cleary point out on warp3dppc.library indeed. There is crash log if you in interest to have a look at :

Crash log for task "mwi_ht.exe"
Generated by GrimReaper 53.19
Crash occured in module Warp3DPPC.library at address 0x7FBA28FC
Type of crash: DSI (Data Storage Interrupt) exception
Alert number: 0x80000003

Register dump:
GPR (General Purpose Registers):
   0: 7FBA3530 63973D28 684B27A8 660222F0 63973E98 63973EB1 63973EB0 63973EB2 
   8: 63973EB3 00007EA4 40000000 00000100 40000000 613F7A48 618F2E60 00000000 
  16: 0000004C 6136B7B0 00000137 00000001 61373620 61373618 61374008 61459FC8 
  24: 63973EA4 00000106 63973EA8 40000004 000000FF 63973E9C 63973D34 63973EA0 


FPR (Floating Point Registers, NaN = Not a Number):
   0:              nan           0.0025               50              256 
   4:                0                0                0         0.749875 
   8:              127               50                1              256 
  12:          1.08313       4.5036e+15     1.67653e+199              255 
  16:    -6.88154e-173     2.07059e-235      5.8721e-258     -1.86805e-24 
  20:     1.95678e+213    -8.97032e-106     7.30742e-220     2.48115e-265 
  24:    -1.56931e-255    -4.55706e-163     1.15034e-114      1.1012e-226 
  28:     -8.6422e-262              380              640               91 

FPSCR (Floating Point Status and Control Register): 0xAF002100


SPRs (Special Purpose Registers):
           Machine State (msr) : 0x0002F030
                Condition (cr) : 0x61C65DC0
      Instruction Pointer (ip) : 0x7FBA28FC
       Xtended Exception (xer) : 0x018407B0
                   Count (ctr) : 0x00000000
                     Link (lr) : 0x00000000
            DSI Status (dsisr) : 0x01860BA0
            Data Address (dar) : 0x00000000



680x0 emulated registers:
DATA: 81557400 00000000 63974F60 6502C4F0 00000005 FFD50001 FFD60001 66022BC4 
ADDR: 6FFA4000 6403DAA0 684B27A8 66022BC4 684B27A8 63974FF0 6403DAA0 63973D48 
FPU0:                0                0                0                0 
FPU4:                0                0                0                0 



Symbol info:
Instruction pointer 0x7FBA28FC belongs to module "Warp3DPPC.library" (HUNK/Kickstart)

Stack trace:
    module LIBS:Warp3DPPC.library at 0x7FBA28FC (section 0 @ 0x28D8)
    module LIBS:Warp3DPPC.library at 0x7FBA2D6C (section 0 @ 0x2D48)
    module LIBS:Warp3DPPC.library at 0x7FBA3278 (section 0 @ 0x3254)
    module LIBS:Warp3DPPC.library at 0x7FBA3598 (section 0 @ 0x3574)
    module mwi_ht.exe at 0x638D3608 (section 1 @ 0x2A5F4)
    module mwi_ht.exe at 0x6397F1F0 (section 5 @ 0x61DC)

PPC disassembly:
 7fba28f4: 418200e4   beq-              0x7FBA29D8
 7fba28f8: 3bc1000c   addi              r30,r1,12
*7fba28fc: c029000c   lfs               f1,12(r9)
 7fba2900: c0490008   lfs               f2,8(r9)
 7fba2904: c1c90004   lfs               f14,4(r9)

System information:

CPU 
 Model: Freescale P5020 (E5500 core) V1.2 
 CPU speed: 1995 MHz 
 FSB speed: 798 MHz 
 Extensions:  

Through without debug information in the library that probably not of big help?

Also what I noticed when I run those MAWI demos is that there some memory trashing happens IMHO. Because I can see at the beginning of any demos, there are some black little dots/lines at top of the rendering scenes (and that happens the same and on x5000/RadeonHD, and on pegasos2/Radeon9250). So I assume it can be memory trashing issues in warp3dppc.library (but of course, and in demos too can be, but maybe we can add some sort of protection from if it will be demos in end).

As I told in another topic, I can donate for work if we will come to something in end :) Even if there are just about 20-30 PPC/Warp3D prods, it still quite cool to run them today on moderns Amigas.

Will continue tests on x5000, maybe will catch some more crashes/hangs, so we can see if they all always the same or not.

@kas1e
Copy link

kas1e commented Jan 6, 2021

Got another crashlog, this time from mawi's "Till I Feel You" :

Crash log for task "mwi-tify.exe"
Generated by GrimReaper 53.19
Crash occured in module Warp3DPPC.library at address 0x7FBA28FC
Type of crash: DSI (Data Storage Interrupt) exception
Alert number: 0x80000003

Register dump:
GPR (General Purpose Registers):
   0: 7FBA3480 638D04B8 684967A8 6602F2F0 638D0628 638D0641 638D0640 638D0642 
   8: 638D0643 00000048 40000000 00000080 40000000 6391B058 614B4660 00000000 
  16: 00000048 63924188 00000000 00000000 63924198 6392419C 00000001 00000001 
  24: 638D0634 00000002 638D0638 40000004 000000FF 638D062C 638D04C4 638D0630 


FPR (Floating Point Registers, NaN = Not a Number):
   0:              nan                1       2.2754e-10              256 
   4:                0       4.5036e+15                0                0 
   8:                0                1                1              128 
  12:                0       4.5036e+15     1.67653e+199              255 
  16:    -6.88154e-173              640                0                0 
  20:                0              380       4.5036e+15              0.5 
  24:              0.5                0            127.5            127.5 
  28:              128              128                0              152 

FPSCR (Floating Point Status and Control Register): 0xAF004000


SPRs (Special Purpose Registers):
           Machine State (msr) : 0x0002F030
                Condition (cr) : 0x639B0000
      Instruction Pointer (ip) : 0x7FBA28FC
       Xtended Exception (xer) : 0x604A7134
                   Count (ctr) : 0x00570001
                     Link (lr) : 0x00000000
            DSI Status (dsisr) : 0x85027002
            Data Address (dar) : 0x639AFA44



680x0 emulated registers:
DATA: 815B7C00 00000000 638D0F60 6506F4F0 00000005 FFD50001 FFD60001 6602FBC4 
ADDR: 6FFA4000 63E4FAA0 684967A8 6602FBC4 684967A8 638D0FF0 63E4FAA0 638D0110 
FPU0:                0                0                0                0 
FPU4:                0                0                0                0 



Symbol info:
Instruction pointer 0x7FBA28FC belongs to module "Warp3DPPC.library" (HUNK/Kickstart)

Stack trace:
    module LIBS:Warp3DPPC.library at 0x7FBA28FC (section 0 @ 0x28D8)
    module LIBS:Warp3DPPC.library at 0x7FBA2D6C (section 0 @ 0x2D48)
    module LIBS:Warp3DPPC.library at 0x7FBA32B8 (section 0 @ 0x3294)
    module LIBS:Warp3DPPC.library at 0x7FBA34E0 (section 0 @ 0x34BC)
    module mwi-tify.exe at 0x6395BF38 (section 1 @ 0x28F24)
    module SYS:System/GrimReaper at 0x00000001 (section 0 @ 0xFFFFFFDC)
    0x33953395 symbol not available

PPC disassembly:
 7fba28f4: 418200e4   beq-              0x7FBA29D8
 7fba28f8: 3bc1000c   addi              r30,r1,12
*7fba28fc: c029000c   lfs               f1,12(r9)
 7fba2900: c0490008   lfs               f2,8(r9)
 7fba2904: c1c90004   lfs               f14,4(r9)

System information:

CPU 
 Model: Freescale P5020 (E5500 core) V1.2 
 CPU speed: 1995 MHz 
 FSB speed: 798 MHz 
 Extensions:  

Machine 
 Machine name: AmigaOne X5000/20 
 Memory: 2097152 KB 
 Extensions: bus.pci bus.pcie  

As I can see, in both cases it's lfs f1,12(r9) , so chances high it's the same bug. I Will try to catch it from some other one, and if 3st one will be the same, then it all about the same then.

@kas1e
Copy link

kas1e commented Jan 6, 2021

Ok, and the third crash, in 3rd demo (probably 3 crashes is more than enough), is in the "fate fits karma". There is:

kernel 54.30 (1.1.2021) AmigaOne X5000 release
Machine model: 9 (AmigaOne X5000/20)
Dump of context at 0xEFD2D3E0
Trap type: DSI exception
DSISR: 00000000  DAR: 00000076
No matching page found
Machine State (raw): 0x0002F030
Machine State (verbose): [Critical Ints on] [ExtInt on] [User] [IAT on] [DAT on]
Instruction pointer: 0x7FBA2874
Crashed process: mwi-fafk.exe (0x64A7B040)
DSI verbose error description: Access to address 0x00000076 not allowed by page protection in user state (protection violation)
Access was a load operation
Exception Syndrome Register: 0x00000000
 0: 7FBA3480 638C1F90 684B27A8 661052F0 638C2100 638C2119 638C2118 638C211A
 8: 638C211B 63A47674 00000000 00000000 43300000 638C7270 00000000 00000000
16: 638CF948 63A47598 00000000 00000000 63A47678 63A4767C 638CAC10 638C7028
24: 638C210C 00000002 638C2110 40000004 000000FF 638C2104 00000002 638C2108
CR: 93953959   XER: A000007E  CTR: 7F706064  LR: 7FBA2D6C

Disassembly of crash site:
 7FBA2864: C1950000   lfs               f12,0(r21)
 7FBA2868: D1840014   stfs              f12,20(r4)
 7FBA286C: 4800006C   b                 0x7FBA28D8
 7FBA2870: 3D804330   lis               r12,17200
>7FBA2874: 816E0076   lwz               r11,118(r14)
 7FBA2878: 91810028   stw               r12,40(r1)
 7FBA287C: 6D6C8000   xoris             r12,r11,32768
 7FBA2880: 9181002C   stw               r12,44(r1)
 7FBA2884: 3D80636D   lis               r12,25453
 7FBA2888: C9610028   lfd               f11,40(r1)
msr: 0x0002B032
TLB1 (64 entries):
 * [ 52]: size=7 tid = 0 TS = 1 epn=0xFE000000 rpn=0x0000000F_FE000000 WIMG=0x5 XXWWRR=0xF protected
 * [ 53]: size=6 tid = 0 TS = 1 epn=0x01000000 rpn=0x00000000_01000000 WIMG=0x0 XXWWRR=0x5 protected
 * [ 54]: size=6 tid = 0 TS = 1 epn=0x01400000 rpn=0x00000000_01400000 WIMG=0x0 XXWWRR=0x5 protected
 * [ 55]: size=6 tid = 0 TS = 1 epn=0x01800000 rpn=0x00000000_01800000 WIMG=0x0 XXWWRR=0x33 protected
 * [ 56]: size=6 tid = 0 TS = 1 epn=0x01C00000 rpn=0x00000000_01C00000 WIMG=0x0 XXWWRR=0x33 protected
 * [ 57]: size=6 tid = 0 TS = 1 epn=0x02000000 rpn=0x00000000_02000000 WIMG=0x0 XXWWRR=0xF protected
 * [ 58]: size=4 tid = 0 TS = 1 epn=0x02400000 rpn=0x00000000_02400000 WIMG=0x0 XXWWRR=0xF protected
 * [ 59]: size=3 tid = 0 TS = 1 epn=0x02440000 rpn=0x00000000_02440000 WIMG=0x0 XXWWRR=0xF protected
 * [ 60]: size=3 tid = 0 TS = 1 epn=0x02450000 rpn=0x00000000_02450000 WIMG=0x0 XXWWRR=0xF protected
 * [ 61]: size=7 tid = 0 TS = 0 epn=0xFE000000 rpn=0x0000000F_FE000000 WIMG=0x5 XXWWRR=0xF protected
 * [ 62]: size=A tid = 0 TS = 0 epn=0x00000000 rpn=0x00000000_00000000 WIMG=0x0 XXWWRR=0x3F protected
 * [ 63]: size=A tid = 0 TS = 0 epn=0x40000000 rpn=0x00000000_40000000 WIMG=0x0 XXWWRR=0x3F protected
HAL_MaxTLB = 51, HAL_NextTLB = 0
MMUCFG = 0x064809C4
mas0 = 0x00010002
mas1 = 0x80001100
mas2 = 0x60260000
mas3 = 0x1188600F
mas4 = 0x00000100
mas5 = 0x00000000
mas6 = 0x00000001
mas7 = 0x00000000
mas8 = 0x00000000

Kernel command line: serial munge debuglevel=1

Registers pointing to code:
r0 : module LIBS:Warp3DPPC.library at 0x7FBA3480 (section 0 @ 0x345C)
r2 : module mwi-fafk.exe at 0x684B27A8 (section 3 @ 0x14)
r9 : module mwi-fafk.exe at 0x63A47674 (section 6 @ 0x660)
r13: module mwi-fafk.exe at 0x638C7270 (section 5 @ 0x25C)
r16: module mwi-fafk.exe at 0x638CF948 (section 5 @ 0x8934)
r17: module mwi-fafk.exe at 0x63A47598 (section 6 @ 0x584)
r20: module mwi-fafk.exe at 0x63A47678 (section 6 @ 0x664)
r21: module mwi-fafk.exe at 0x63A4767C (section 6 @ 0x668)
r22: module mwi-fafk.exe at 0x638CAC10 (section 5 @ 0x3BFC)
r23: module mwi-fafk.exe at 0x638C7028 (section 5 @ 0x14)
ip : module LIBS:Warp3DPPC.library at 0x7FBA2874 (section 0 @ 0x2850)
lr : module LIBS:Warp3DPPC.library at 0x7FBA2D6C (section 0 @ 0x2D48)
ctr: module LIBS:Warp3D/HWdrivers/W3D_SI.library at 0x7F706064 (section 0 @ 0x1040)

Stack trace:
(0x638C1F90) module LIBS:Warp3DPPC.library at 0x7FBA2874 (section 0 @ 0x2850)
(0x638C2010) module LIBS:Warp3DPPC.library at 0x7FBA2D6C (section 0 @ 0x2D48)
(0x638C2190) module LIBS:Warp3DPPC.library at 0x7FBA32B8 (section 0 @ 0x3294)
(0x638C21D0) module LIBS:Warp3DPPC.library at 0x7FBA34E0 (section 0 @ 0x34BC)
(0x638C2200) module mwi-fafk.exe at 0x6395AEE0 (section 1 @ 0x27ECC)

Disassembly of crash site:
 7FBA2864: C1950000   lfs               f12,0(r21)
 7FBA2868: D1840014   stfs              f12,20(r4)
 7FBA286C: 4800006C   b                 0x7FBA28D8
 7FBA2870: 3D804330   lis               r12,17200
>7FBA2874: 816E0076   lwz               r11,118(r14)
 7FBA2878: 91810028   stw               r12,40(r1)
 7FBA287C: 6D6C8000   xoris             r12,r11,32768
 7FBA2880: 9181002C   stw               r12,44(r1)
 7FBA2884: 3D80636D   lis               r12,25453
 7FBA2888: C9610028   lfd               f11,40(r1)
Stack pointer (0x638C1F90) is inside bounds
Redzone is OK (4)

This time is different: lwz r11,118(r14) , but visually also just hangs in process.

But in all 3 crashes. stack trace points out on warp3dppc and address in 2 cases identical, and 3rd case almost identical. So seems all about the same still.

@DvdBoon
Copy link
Contributor Author

DvdBoon commented Jun 9, 2021

@kas1e If only i had a working OS4 machine. But normally, I would hex search the code to confirm it is in Warp3Dppc and then look which function it is. I recently found out that some of these old programs send 3D commands with 0 vertexes. Maybe that is the issue here too. But no way to check atm

@DvdBoon
Copy link
Contributor Author

DvdBoon commented Jun 10, 2021

@kas1e Why does the last report look different than the other two? I think the latter is more useful than the other two. Also, did you try with one of the build-in patches?

@DvdBoon
Copy link
Contributor Author

DvdBoon commented Jun 10, 2021

If I understand these reports correctly and IP and LR point to Warp3Dppc, then the error is in the patch code from Thellier. As the rest of the functions are just wrapper functions and just consist of a jump to warp3d.library while the patch code jumps inside the warp3dpcc.library.

@DvdBoon
Copy link
Contributor Author

DvdBoon commented Jun 10, 2021

And only the patch code has fpu code in it.

@DvdBoon
Copy link
Contributor Author

DvdBoon commented Jun 10, 2021

And why do I check this after 5 years? Novabridge.

@kas1e
Copy link

kas1e commented Dec 10, 2021

@ALL
Tried those MAWI demos on the latest NovaBridge today on my x5000/020 again. All 3 demos don't seem to crash anymore be it RadeonHD or Radeon RX. And basically, no other MAWI demos crash for now... Will test for one-two days more

@DvdBoon
Copy link
Contributor Author

DvdBoon commented Dec 11, 2021 via email

@kas1e
Copy link

kas1e commented Dec 11, 2021

Yes, everything renders correctly now. There is one small glitch like broken clipping through (seems so), see:

on novabridge: https://kas1e.mikendezign.com/aos4/novabridge/mawi_clipping_novabridge.jpg
how should be: https://kas1e.mikendezign.com/aos4/novabridge/mawi_clipping_ok.jpg

See, at the bottom big black line, while should be half on top and a half at the bottom.

But in other all MAWI demos renders correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants