Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07888 Crash/Freeze Critical (emulator) Always Mar 1, 2021, 01:19 16 days ago
Tester Tafoid View Status Public Platform MAME (Self-compiled)
Assigned To Resolution Open OS Windows Vista/7/8 (64-bit)
Status [?] Confirmed Driver
Version 0.229 Fixed in Version Build Debug
Fixed in Git Commit Github Pull Request #
Summary 07888: warrior: [debug] Assert after -bench or -str run
Description
Assertion failed: PRIMFLAG_GET_BLENDMODE(prim.flags) == BLENDMODE_NONE || PRIMFLAG_GET_BLENDMODE(prim.flags) == BLENDMODE_ALPHA, file ../../../../../src/emu/rendersw.hxx, line 528
Steps To Reproduce
Additional Information
Github Commit
Flags Debug build specific
Regression Version 0.223
Affected Sets / Systems warrior
Attached Files
zip file icon warrior_lay_works.zip (554 bytes) 19 days ago Uploaded by hap
zip file icon default_test.zip (427 bytes) 19 days ago Uploaded by hap
Relationships
There are no relationship linked to this issue.
Notes
9
User avatar
No.20102
Robbbert
Moderator
Apr 28, 2022, 10:36
Tested just now with debug build, no crash
User avatar
No.20119
Tafoid
Administrator
Apr 28, 2022, 20:27
edited on: Apr 28, 2022, 20:28
Still happens for me with 0.242 Debug build and release243 branch Debug build.
The line number changed but the issue is the same.

[MINGW64] R:\mame243>mamed warrior -bench 10
stream Default Resampler ':mono' changing rates 48000 -> 11025
stream Default Resampler ':soundboard' changing rates 48000 -> 11025
Speaker ':mono' Ch.0 @ 11025
  Default Resampler ':mono' Ch.0 @ 11025
    Warrior Sound Board ':soundboard' Ch.0 @ 11025
      Default Resampler ':soundboard' Ch.0 @ 11025
        Netlist Sound Device ':soundboard:sound_nl' Ch.0 @ 48000
Assertion failed: PRIMFLAG_GET_BLENDMODE(prim.flags) == BLENDMODE_NONE || PRIMFLAG_GET_BLENDMODE(prim.flags) == BLENDMODE_ALPHA, file R:/mame243/src/emu/rendersw.hxx, line 596

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
User avatar
No.20122
Robbbert
Moderator
Apr 29, 2022, 05:07
Yes, I can reproduce it now

mamed warrior -bench 10 -artpath artwork

will crash as you say. But if there's some external artwork, it seems much happier.
User avatar
No.20124
Robbbert
Moderator
Apr 29, 2022, 05:58
The problem appears to lie in the internal artwork. It was created by Aaron (which is where this bug started), and then updated by Vas 6 weeks later (and the bug was not detected).

Removing the artwork from cinemat.cpp gets rid of the assert, but I'm not an artwork expert - I cannot see anything wrong with it.
User avatar
No.22453
hap
Developer
19 days ago
On a Windows normal build (aka the MAME release .exe), you can repro it like:
mame.exe warrior -video gdi
result = no internal artwork

It appears it doesn't like this: <screen index="0" blend="add">
But a lot of internal artwork uses this blendmode on stuff, and it works fine?

If you draw the internal artwork the other way around, it'll also work fine, I'll attach a file. If noone wants to fix the underlying issue, that can be used.
User avatar
No.22455
hap
Developer
19 days ago
I attached another test file.

put default.lay in artwork/pacman
put default.lay in artwork/tempest

on MS Windows:
mame pacman -video gdi
mame tempest -video gdi

pacman works, tempest doesn't show the internal artwork
User avatar
No.22458
cuavas
Administrator
18 days ago
So is the actual issue that the software compositor doesn't support support add and multiply blend modes for vector primitives?
User avatar
No.22460
hap
Developer
18 days ago
At the time it reaches the assert during this test, PRIMFLAG_GET_BLENDMODE(prim.flags) == BLENDMODE_ADD.
Yes, blend="multiply" also won't work there.

FWIW the test case with pacman also fails with multiply blending, draw_quad_palette16_multiply is unimplemented, it gives a fatalerror (draw_quad_yuy16_multiply is missing too)
User avatar
No.22474
cuavas
Administrator
16 days ago
1c50756b3a43811fcd54718f99ef7f96727d06b4 adds support for RGB multiply with 16bpp textures (palette and YUY), as well as reducing a bit of redundancy. Supporting vectors is somewhat more complicated.