Skip to content

pgraph_bind_textures: Assertion `levels > 0' failed. #1238

@HadetTheUndying

Description

@HadetTheUndying

Title

https://xemu.app/titles/43430009/#Steel-Battalion-Line-of-Contact
https://xemu.app/titles/43430002/#Steel-Battalion

Bug Description

Game Crashes when getting ingame for starting the campaign or loading a replay transfered from a hardward xbox with the described assert

I captured this backtrace

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007ffff6460536 in __GI_abort () at abort.c:79
#2  0x00007ffff646041f in __assert_fail_base (
    fmt=0x7ffff65c8ea8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=0x5555560d6e88 "levels > 0", file=0x5555560d6b80 "../hw/xbox/nv2a/pgraph.c", 
    line=6647, function=<optimized out>) at assert.c:92
#3  0x00007ffff646f792 in __GI___assert_fail (
    assertion=assertion@entry=0x5555560d6e88 "levels > 0", 
    file=file@entry=0x5555560d6b80 "../hw/xbox/nv2a/pgraph.c", line=line@entry=6647, 
    function=function@entry=0x5555560d5710 <__PRETTY_FUNCTION__.34> "pgraph_bind_textures")
    at assert.c:101
#4  0x0000555555a9d869 in pgraph_bind_textures (d=d@entry=0x7fff794ca010)
    at ../hw/xbox/nv2a/pgraph.c:6647
#5  0x0000555555aa1214 in pgraph_NV097_SET_BEGIN_END_handler (d=d@entry=0x7fff794ca010, 
    pg=pg@entry=0x7fff794eccd0, subchannel=subchannel@entry=0, method=method@entry=6140, 
    parameter=parameter@entry=6, parameters=parameters@entry=0x7ffee7d78f90, 
    num_words_available=1, num_words_consumed=0x7ffeeebf22a0, inc=true)
    at ../hw/xbox/nv2a/pgraph.c:2896
#6  0x0000555555aa2bd7 in pgraph_method (d=d@entry=0x7fff794ca010, 
    subchannel=subchannel@entry=0, method=method@entry=6140, parameter=parameter@entry=6, 
    parameters=parameters@entry=0x7ffee7d78f90, 
    num_words_available=num_words_available@entry=1, max_lookahead_words=1693, inc=true)
    at ../hw/xbox/nv2a/pgraph.c:1146
#7  0x0000555555a9070c in pfifo_run_puller (d=d@entry=0x7fff794ca010, 
    method_entry=<optimized out>, parameter=6, parameters=0x7ffee7d78f90, 
    num_words_available=1, max_lookahead_words=1693) at ../hw/xbox/nv2a/pfifo.c:226
#8  0x0000555555a908ab in pfifo_run_pusher (d=d@entry=0x7fff794ca010)
    at ../hw/xbox/nv2a/pfifo.c:337
#9  0x0000555555a90f52 in pfifo_thread (arg=arg@entry=0x7fff794ca010)
    at ../hw/xbox/nv2a/pfifo.c:489
#10 0x0000555555c5c035 in qemu_thread_start (args=0x7fff823bfdd0)
    at ../util/qemu-thread-posix.c:541
#11 0x00007ffff6608eae in start_thread (arg=0x7ffeeebf6640) at pthread_create.c:463
#12 0x00007ffff65382ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Expected Behavior

The game to get ingame like Line of Contact appears to do.(Though the performance is abysmal).

xemu Version

Version: 0.7.56-15-g940bee452c
Branch: master
Commit: 940bee4
Date: Thu Aug 18 08:13:32 PM UTC 2022

System Information

CPU: AMD Ryzen 7 2700X Eight-Core Processor
OS Platform: Linux
OS Version: Void Linux
Manufacturer: AMD
GPU Model: AMD Radeon RX Vega (vega10, LLVM 12.0.1, DRM 3.46, 5.18.16_1)
Driver: 4.6 (Core Profile) Mesa 22.1.7
Shader: 4.60

Additional Context

This does require passing the controller through to test. I figured out my passthrough woes were due to permissions and not xemu so I'd like to apologize for blaming a commit for it. I'm not sure why it used to work without changing bus permissions but probably something to do with my system.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggraphicsIssues with the graphics subsystem

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions