cesys

Results 19 comments of cesys

Debugging Vulkan case (OpenGL is negligible since the support will be probably dropped). Instrumented command_processor.cc#bool CommandProcessor::ExecutePacketType0(RingBuffer* reader, uint32_t packet) with these logs: ``` !> 00000004 XXX: packet -> FFFF ->...

Fixed issue for Vulkan. We should allow 0xFFFFFF as it's a valid index. Vulkan doesn't allow directly to specify the index, it just allows to enable primitive reset determining automatically...

What's I'm saying is that primitive reset is actually there. Vulkan doesn't allow to specify the index because it doesn't need it. It just allows to set the enable/disable flag,...

As far as I know that the index is VkIndexType (the one I was talking about earlier). We do the following in vulkan_command_processor.cc VkIndexType index_type = info.format == IndexFormat::kInt32 ?...

In WorkerThreadMain, at the line: uint32_t write_ptr_index = write_ptr_index_.load(); the write_ptr_index ends up being broken and that broken value is passed to ExecutePrimaryBuffer. I logged the values of write_ptr_index: ......

Pretty sure it's not the case. Here you have another sequence: !> 00000004 XXX: ExecutePrimaryBuffer -> read_index : 00000BC3 , write_index : 00000BC9 !> 00000004 XXX: ExecutePrimaryBuffer -> read_index :...

Seems like in: auto graphics_system = kernel_state()->emulator()->graphics_system(); graphics_system->InitializeRingBuffer(ptr, log2_size); the ring buffer is initialized to be 0x8000 bytes meaning 32k so we're definitely far from wrapping around... Unless the dimension...

Found the issue. In this specific title the ring buffer got reinitialized at least twice with: InitializeRingBuffer Immediately after the second initialization, the game crashes because read_ptr_index_ is not reset...

Commenting the assert makes the game go a little further (it plays another short WMV). After that I get a shader translation exception. Which means we're approaching the 3D part....