VOGONS


Reply 140 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

OK the stride is in words.

Formula 1 resize paletted textures and the stride doesn't match.

At one point in the logs a 128x256 byte surface is loaded with a 256x256 texture. This should be illegal since the buffer is too small. The dma transfer probably goes wrong.

My fix in VL_Installtexture won't do anything.

I think this is the problem.

Need to think about this.

Need to figure out how to deal with this.

Regular RReady handles the switch. I can try disassembling the F1 dlls.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 141 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

https://1drv.ms/u/s!As-dKk-N73dSl2IMo-Zu9Ad0nTvO
MD5: 946cc44874eef3d1201f585bc019cca7

This should shrink the number of bytes passed to VL_LoadBuffer. If this runs there'll be funk textures in the fully 3D sections.

Failing everything I could disable paletted textures altogether to see if it runs.

[EDIT] And there's more logging now.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 144 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

I'll also need the time it froze., so I can check the logs.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 146 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

No, local time when it froze. If your machine's clock's set right I can correlate.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 149 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

https://1drv.ms/u/s!As-dKk-N73dSl2UMo-Zu9Ad0nTvO
MD5: ebea8ab167797d04234ceefaca134ac6

Bit more logging and some changes. V_ResetCmdBuffer isn't called in the callback. It's entirely possible this will crash even sooner.

Also found a bug in my logging code. A thread safe lock in verite.dll was being entered twice and exited once. This shouldn't have any effect, except that the lock keeps a count and it could very well overflow causing issues. I don't know whether it does.

The log file you posted here:
02:45:41.120 Massaged Callback (Entry)
02:45:41.120 MassagedCallback buffer entry cmdbuffer id 4
02:45:41.120 V_IssueCmdBufferAsync_
02:45:41.120 VL_IssueCmdBufferAync_ buffer id 4
02:45:41.120 V_ResetCmdBuffer
02:45:41.120 MassagedCallback on exit cmdbuffer id 5
02:45:41.180 Massaged Callback (Entry)
02:45:41.180 MassagedCallback buffer entry cmdbuffer id 5
02:45:41.180 V_IssueCmdBufferAsync_
02:45:41.180 VL_IssueCmdBufferAync_ buffer id 5
02:45:41.180 V_ResetCmdBuffer
02:45:41.180 MassagedCallback on exit cmdbuffer id 6
02:45:41.180 Massaged Callback (Entry)
02:45:41.180 MassagedCallback buffer entry cmdbuffer id 6
02:45:41.180 V_IssueCmdBufferAsync_
02:45:41.180 VL_IssueCmdBufferAync_ buffer id 6

is very strange. When commands are added through V_AddToCmdList there's a user supplied spill over function for issuing the buffer and getting a fresh one.

In the logs the spillover's called multiple times without any intermediate function call. The game's main thread calls V_AddToCmdList and if the buffer's full, spiller which get a fresh buffer and V_AddToCmdList continues with the new buffer. So this is pretty weird and suggests I've messed up a variable name somewhere.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 155 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

And the last one for today. I disabled logging for V_QueryCmdBuffer while getting the menus to go. Now that they appear to be working:

https://1drv.ms/u/s!As-dKk-N73dSl2gMo-Zu9Ad0nTvO
MD5: e2ea5eb9bd3ddf9ce9cec0aef482224a

Now we should be able to see if it's stuck in an infinite loop querying the command buffer due to a stall.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 157 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

503 means the buffer is free. (V_CMDBUFFER_AVAIL).

So why it isn't sending more commands is the question.

Need to check the disassembley for V_QueryCndBuffer. It should be in the callback function. This is a job for tomorrow.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 158 of 315, by sharangad

User metadata
Rank l33t
Rank
l33t

The logging in the previous version was borked (previous versions were fine). All command buffer ids were being returned as 0. This should fix the problem.
503 is V_CMDBUFFER_INUSE

https://1drv.ms/u/s!As-dKk-N73dSl2kMo-Zu9Ad0nTvO
MD5: 0a64e242ee523b13993d3bd2aec07182

#define V_CMDBUFFER_INUSE               503
#define V_CMDBUFFER_AVAIL 504

So in the previous log one of the command buffers wasn't terminating.

If I can isolate the command buffer that never finishes, I should be able work out which command is causing the lock up.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda