Skip to content

Give Voodoo a gentle push to get it passing CI#2710

Merged
kcgen merged 121 commits intomainfrom
kc/voodoo-cleanup-1
Aug 1, 2023
Merged

Give Voodoo a gentle push to get it passing CI#2710
kcgen merged 121 commits intomainfrom
kc/voodoo-cleanup-1

Conversation

@kcgen
Copy link
Copy Markdown
Member

@kcgen kcgen commented Jul 31, 2023

This PR gets Voodoo passing CI, enables it by default, and makes the conf section consistent.

[voodoo]
voodoo_memsize = ...
voodoo_perf = ...

(This PR target CI fixes only - it's not a refactoring, renaming, or rewrite PR. For anyone interested in a more full-scale overhaul, it's best to rebase against MAME's latest Voodoo 1 and 2 revision as it's been updated with more modern C++ styles).


push-voodoo-into-ci

@kcgen kcgen added the voodoo Issues related to the 3dfx Voodoo 1 label Jul 31, 2023
@kcgen kcgen self-assigned this Jul 31, 2023
@kcgen
Copy link
Copy Markdown
Member Author

kcgen commented Jul 31, 2023

Commits are building ...

Using gcc native file: .github/meson/native-gcc-13.ini
Using clang native file: .github/meson/native-clang.ini
Compiling 776a8da6d Reduce allowed Clang analysis warnings b.. gcc clang
Compiling 4d23a0d32 Reduce allowed PVS Studio warnings by 66.. gcc clang
Compiling d851e6a6d De-Bitu the BIOS find-device-by-class qu.. gcc clang
Compiling 540c8044a De-Bitu the BIOS find-device-by-tag quer.. gcc clang
Compiling 71146023e Drop unused word and dword PCI read size.. gcc clang
Compiling 9a04e40a4 Drop unused word and dword PCI write siz.. gcc clang
Compiling 1027dfc87 Update voodoo header with changes and to.. gcc clang
Compiling 812aaa45f Apply parentheses to voodoo boolean bloc.. gcc clang
Compiling e413acf3e Clarify use of static members versus ins.. gcc clang
Compiling 25d6d045d Drop redundant declaration in voodoo    .. gcc clang
Compiling 4e4f306e5 Replace implicit boolean statements with.. gcc clang
Compiling a6edfe1c9 Replace typedefs with using in voodoo   .. gcc clang
Compiling e46971d52 Use a literal bool instead of integer in.. gcc clang
Compiling 2e66102d0 Use auto for a couple variables in voodo.. gcc clang
Compiling bab8223e7 Drop redundant void args in voodoo      .. gcc clang
Compiling e752a7242 Bundle voodoo fog-related macro defines .. gcc clang
Compiling 9ef64496a Loop directly over thread variables in v.. gcc clang
Compiling 5d541dd34 Apply const to all applicable voodoo var.. gcc clang
Compiling eadac0b42 Drop else after return statements in voo.. gcc clang
Compiling 856652cb9 Move initialization of members to defaul.. gcc clang
Compiling 16195f1c8 Dynamic cast to derived section class in.. gcc clang
Compiling b176738e0 Apply bugprone macro parentheses cleanup.. gcc clang
Compiling a2bac6aa8 Apply readability isolate declaration cl.. gcc clang
Compiling 4d04184b6 Use double in voodoo PIC_AddEvent calls .. gcc clang
Compiling fa6f76d12 Move voodoo draw_state vfreq to double t.. gcc clang
Compiling 4e5ffa83d Initialize voodoo draw_state members wit.. gcc clang
Compiling d90deda81 Align the voodoo dithermatrix to the lar.. gcc clang
Compiling 248135dd3 Retain the voodoo dithermatrix across ca.. gcc clang
Compiling 7780746fd Allocate and align voodoo FBI memory    .. gcc clang
Compiling 590e06ad3 Allocate and align voodoo TMU memory    .. gcc clang
Compiling 6eceb5869 Clamp the exponent and left-shift value .. gcc clang
Compiling de61fa386 Use safer signed left-shift in voodoo fa.. gcc clang
Compiling 37437198d Limit voodoo override value to destinati.. gcc clang
Compiling eb095512a Replace E_Exit with assertions in voodoo.. gcc clang
Compiling bab06cfe3 Replace E_Exit with assertions in voodoo.. gcc clang
Compiling 478c84c7b Replace E_Exit with assertions in voodoo.. gcc clang
Compiling 8bb661460 Replace E_Exit with assertions in voodoo.. gcc clang
Compiling 61b0dd635 Replace E_Exit with assertion in voodoo .. gcc clang
Compiling 2a3c52746 Replace E_Exit with assertion in voodoo .. gcc clang
Compiling b3530c912 Replace E_Exit with assertions in voodoo.. gcc clang
Compiling eb8929a65 Limit voodoo word values to match destin.. gcc clang
Compiling e7849a243 Limit voodoo byte values to match destin.. gcc clang
Compiling 72a8a404e Use const int in alpha blend macro      .. gcc clang
Compiling 4067d5192 Reformat voodoo alpha blend macro       .. gcc clang
Compiling e106708da Disambiguate local s-values from previou.. gcc clang
Compiling d37012cd6 Use const auto and simplify voodoo retra.. gcc clang
Compiling c2b8459c1 Limit voodoo rgb values to destination t.. gcc clang
Compiling 25692091a Limit voodoo fog values to destination t.. gcc clang
Compiling 40c1b332f Move unused voodoo vtotal into debug blo.. gcc clang
Compiling 6c598f4da Use float literal in voodoo FBI calculat.. gcc clang
Compiling 31ac4a63f Explicitly cast to float in voodoo round.. gcc clang
Compiling 45e8d74b5 Limit voodoo FBI frontbuf value to desti.. gcc clang
Compiling 04d98ec27 Drop unused voodoo state in FBI initiali.. gcc clang
Compiling a72ef08fc Expand voodoo clamp local variables to a.. gcc clang
Compiling bab237484 Drop useless casts in voodoo memory base.. gcc clang
Compiling 5221b6b37 Drop useless casts in voodoo memory writ.. gcc clang
Compiling 41e2bccc9 Drop useless casts in voodoo port read f.. gcc clang
Compiling b95885e26 Drop useless casts in voodoo port write .. gcc clang
Compiling d736ef96a Drop useless casts in voodoo buffer offs.. gcc clang
Compiling 4e19eca12 Drop useless cast in voodoo log2 macro  .. gcc clang
Compiling 7d583ce29 Replace voodoo 32-bit byte swap macro wi.. gcc clang
Compiling 40f99f79b Drop useless casts in voodoo prepare_tmu.. gcc clang
Compiling 35ae69065 Drop useless casts in voodoo color handl.. gcc clang
Compiling 3be94ccef Drop useless casts in voodoo texture pip.. gcc clang
Compiling 2a062e0c1 Drop useless casts in voodoo clamp funct.. gcc clang
Compiling b865cb4e1 Disambiguate the semaphore's initial cou.. gcc clang
Compiling f2c36d0e3 Instantiate voodoo setup_and_draw_triang.. gcc clang
Compiling 2e74a491c Reference the voodoo setup vertex struct.. gcc clang
Compiling c4cfe80a6 Reference the voodoo texture mapping uni.. gcc clang
Compiling 8ba82648e Expand voodoo FBI and TMU acronyms      .. gcc clang
Compiling 4be5eb201 Reference the voodoo frame buffer interf.. gcc clang
Compiling a94a0f9e3 Reference the voodoo state registers loc.. gcc clang
Compiling 3db190ccb Don't shadow the global voodoo state in .. gcc clang
Compiling 8edc98f70 Don't shadow the global voodoo state in .. gcc clang
Compiling 1f146bcce Don't shadow the global voodoo state in .. gcc clang
Compiling 80a61bc23 Don't shadow the global voodoo state in .. gcc clang
Compiling e3e4874be Don't shadow the global voodoo state in .. gcc clang
Compiling d5d2b33ff Don't shadow the global voodoo state in .. gcc clang
Compiling f5022239d Don't shadow the global voodoo state in .. gcc clang
Compiling 1fba29e0a Don't shadow the global voodoo state in .. gcc clang
Compiling 19da1e292 Don't shadow the global voodoo state in .. gcc clang
Compiling d40f79c36 Don't shadow the global voodoo state in .. gcc clang
Compiling 5a671e468 Don't shadow the global voodoo state in .. gcc clang
Compiling 844e2d8c3 Don't shadow the global voodoo state in .. gcc clang
Compiling 39aeb3322 Don't shadow the global voodoo state in .. gcc clang
Compiling 245d3220f Don't shadow the global voodoo state in .. gcc clang
Compiling 3d5783dea Don't shadow the global voodoo state in .. gcc clang
Compiling a2f213250 Use const auto and bit-literal determini.. gcc clang
Compiling f20eb4ece Drop unused voodoo fifo-space management.. gcc clang
Compiling 3985a7155 Collapse duplicate voodoo alpha-blend ca.. gcc clang
Compiling 3551e1d3f Use unaligned 64-bit IO in voodoo fastfi.. gcc clang
Compiling 2f0731686 Reduce size of voodoo chips type to actu.. gcc clang
Compiling ac2d789cb Expand voodoo debug block to log-only va.. gcc clang
Compiling 420c134ff Collapse duplicate voodoo triangle cases.. gcc clang
Compiling 1a4624427 Expand voodoo variable prior to shifting.. gcc clang
Compiling 5393e901d Comment out voodoo pending swaps as its .. gcc clang
Compiling c67b90c9a Collapse duplicate voodoo criteria into .. gcc clang
Compiling 9c5f4c24d Refactor voodoo reciprocal log LUT gener.. gcc clang
Compiling 6b0818fb5 Refactor voodoo dither LUT generator mac.. gcc clang
Compiling 63340ae1c Make voodoo dither matrices constexpr   .. gcc clang
Compiling a00d34af6 Avoid re-assigning the same vtype in voo.. gcc clang
Compiling c25601bdd Avoid right-shifting by a negative amoun.. gcc clang
Compiling c3cfbc2f8 Localize assignment of regnum in voodoo .. gcc clang
Compiling 6b1fbcb45 Swap the voodoo extent start and end as .. gcc clang
Compiling 78be5645e Exclude OpenGL-specific variable assignm.. gcc clang
Compiling 8a74bf316 Initialize voodoo lfb_w locals with defa.. gcc clang
Compiling 4d53bf361 Eliminate redundant type-assigning in vo.. gcc clang
Compiling 8d55d46b0 Localize conversion of addr to offset in.. gcc clang
Compiling c3a7874ce Notify thread semaphores directly in voo.. gcc clang
Compiling 4bbbef914 Initialize and iterate threads directly .. gcc clang
Compiling 78db0d46b Move array length to constexpr in voodoo.. gcc clang
Compiling 837e2d099 Check voodoo's pagehandler readd return .. gcc clang
Compiling bdf6da8c5 Use const in voodoo register_r function .. gcc clang
Compiling 045337341 Localize variable init in voodoo registe.. gcc clang
Compiling 4924abdda Use const auto in voodoo register_r     .. gcc clang
Compiling a4bf21e71 Use const auto and defaults in voodoo lf.. gcc clang
Compiling 22f6eab2e Remove optional voodoo support          .. gcc clang

Comment thread src/hardware/voodoo.cpp Outdated
@kcgen kcgen requested a review from FeralChild64 July 31, 2023 20:24
Comment thread src/hardware/voodoo.cpp Outdated
Comment thread src/hardware/voodoo.cpp
Comment thread src/hardware/voodoo.cpp
Comment thread src/hardware/voodoo.cpp
Comment thread src/hardware/voodoo.cpp Outdated
@kcgen kcgen force-pushed the kc/voodoo-cleanup-1 branch from e09eafd to 9732adc Compare July 31, 2023 22:22
Comment thread src/hardware/voodoo.cpp Outdated
Comment thread src/hardware/voodoo.cpp Outdated
Comment thread src/hardware/voodoo.cpp Outdated
Comment thread src/hardware/voodoo.cpp
Comment thread src/hardware/voodoo.cpp
Comment thread src/hardware/voodoo.cpp
Comment thread src/hardware/voodoo.cpp Outdated
Comment thread src/hardware/voodoo.cpp
Comment thread src/dosbox.cpp Outdated
Comment thread src/dosbox.cpp Outdated
Comment thread src/dosbox.cpp
Comment thread src/dosbox.cpp Outdated
Comment thread src/dosbox.cpp
Comment thread src/hardware/voodoo.cpp Outdated
Comment thread .github/workflows/pvs-studio.yml
kcgen added 22 commits August 1, 2023 10:25
1. The [pci] section is eliminated because it's inconsistent:
   DOSBox has never use conf sections based on bus-type ([isa] [eisa], ..)
   Thus, the voodoo conf section is now [voodoo].

2. The Voodoo's memory size is now postfixed with 'memsize',
   the be consistent with the two other memsize conf values.

3. The performance setting is left as-is

Result:

[voodoo]
voodoo_memsize = disabled / 4 / 12
voodoo_perf = 0 / 1 / 2 / 3

This commit also logs these details during startup, and
adds a simple enum and enum-to-string to make the vperf
values more obvious.
@kcgen kcgen force-pushed the kc/voodoo-cleanup-1 branch from 8554aef to c513d2c Compare August 1, 2023 17:25
@kcgen
Copy link
Copy Markdown
Member Author

kcgen commented Aug 1, 2023

Thanks for the review, @johnnovak!

you drop THIS for M A X I M U M - D R A M A T I C - E F F E C T ! 😆 That's something that I would've done!

I'm learning from the pros! ☝️ 😄

Copy link
Copy Markdown
Member

@johnnovak johnnovak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unleash the Voodoo! 😎

https://youtu.be/YV78vobCyIo

@kcgen kcgen merged commit fee729e into main Aug 1, 2023
@kcgen kcgen deleted the kc/voodoo-cleanup-1 branch August 1, 2023 23:04
@johnnovak johnnovak added the enhancement New feature or enhancement of existing features label Nov 13, 2023
@johnnovak johnnovak added the video Graphics and video related issues label Dec 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or enhancement of existing features video Graphics and video related issues voodoo Issues related to the 3dfx Voodoo 1

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants