Previous 199869 Revisions Next

r176404 Friday 9th July, 2021 at 01:35:00 UTC by Aaron Giles
video/voodoo.cpp: Major rewrite: (#8267)

* Changed to use modern poly.h instead of polylgcy.h.
* Moved helper classes into separate voodoo namespace.
* Derived device classes from video_device_interface.
* Split classes so that later versions derive from earlier versions.
* Created device maps to be directly included.
* Redesigned register mapping to use helper classes and delegates.
* Rewrote rasterizers to use C++ templates instead of macros.
* Added logic to compute equations for color/texture combine units.
* Added special generic identity-texel rasterizer cases.
* Removed pipeline stalls on texture and palette changes.
* Removed pipeline stalls on most all parameter changes.
* Generally re-thought and cleaned up logic throughout.
* Parameterized cycle stealing on status reads; updated all existing voodoo consumers to configure it as it was before.

-vidoe/poly.h: Various improvements:
* Exposed poly_array class for broader use.
* Changed poly_array to intelligently determine maximum size.
* Added logic to track multiple "last" instances in poly_array.
* Extended logic to support up to 16m work items.
* Removed MaxPolys parameter from poly_manager template.
* Added Flags parameter to poly_manager template.
* Added POLY_FLAG_NO_CLIPPING flag to remove clipping code when not needed.
* poly_manager now supports a MaxParams value of 0.
* Made paramcount a template parameter for render_* functions.
* Added reset_after_wait() method to be overridden by derived classes.
* Switched to using std:: helpers instead of internal methods.
* Removed useless dependency on screen_device.
* TRACK_POLY_WAITS now produces more complete statistics.

-video/polylgcy.cpp: Removed legacy implementation of polygon renderer.

-machine/gt64xxx.cpp: Prevent lockups by disallowing 0-duration timers.

-machine/pci.cpp: Added support for adding subdevice maps directly.

-emu/video/rgbsse.h: Improved min/max for SSE4.1+ and scale+clamp operations for all.

-emu/vidoe/rgbutil.h: Made palette expansion constexpr and added argbexpand function.

-osd/osdcore.cpp: Changed osd_ticks to use QueryPerformanceCounter on Windows since the mingw std::chrono::high_resolution_clock is anything but.
[/branches/pc98_state/scripts/src]video.lua
[/branches/pc98_state/src/devices/machine]gt64xxx.cpp k033906.cpp k033906.h pci.h
[/branches/pc98_state/src/devices/video]poly.h polylgcy.cpp polylgcy.h vooddefs.ipp voodoo.cpp voodoo.h voodoo_2.cpp* voodoo_2.h* voodoo_banshee.cpp* voodoo_banshee.h* voodoo_pci.cpp voodoo_pci.h voodoo_rast.ipp voodoo_regs.h* voodoo_render.cpp* voodoo_render.h* zeus2.cpp zeus2.h
[/branches/pc98_state/src/emu/video]rgbsse.cpp rgbsse.h rgbutil.h
[/branches/pc98_state/src/lib/util]palette.h
[/branches/pc98_state/src/mame/drivers]atarisy4.cpp cobra.cpp funkball.cpp gticlub.cpp hornet.cpp iteagle.cpp magictg.cpp namcos23.cpp nwk-tr.cpp rollext.cpp savquest.cpp seattle.cpp taitopjc.cpp taitotz.cpp vegas.cpp viper.cpp
[/branches/pc98_state/src/mame/includes]gaelco3d.h galastrm.h hng64.h midvunit.h midzeus.h model2.h model3.h namcos22.h xbox_nv2a.h
[/branches/pc98_state/src/mame/machine]konppc.cpp konppc.h n64.cpp xbox.cpp
[/branches/pc98_state/src/mame/video]gaelco3d.cpp galastrm.cpp hng64_3d.hxx k001005.cpp k001005.h midvunit.cpp midzeus.cpp model2.cpp model3.cpp n64.cpp n64.h namcos22.cpp tc0780fpa.cpp tc0780fpa.h xbox_nv2a.cpp
[/branches/pc98_state/src/osd]osdcore.cpp


Previous 199869 Revisions Next


© 1997-2024 The MAME Team