Commit Graph

65 Commits

Author SHA1 Message Date
99d3e489ea Move BoundingBox out of RenderBase
They were essentially just pass-though methods
2023-01-31 19:41:24 +13:00
74e1577a2c HW/ProcessorInterface: Refactor to class, move to Core::System. 2023-01-04 03:00:10 +01:00
725bd64ec2 VideoCommon: De-globalize PixelShaderManager class. 2022-12-27 20:13:24 +01:00
c486baffe6 VideoCommon/PixelEngine: Pass Core::System to methods. 2022-12-11 21:57:30 +01:00
ec8aaf1f30 VideoCommon/PixelEngine: Refactor to class, move to Core::System. 2022-12-11 21:57:19 +01:00
5624dd6d39 VideoCommon/Fifo: Refactor to class, move to Core::System. 2022-12-10 17:16:19 +01:00
c9558ecb4c CoreTiming: Refactor to class. 2022-11-27 03:47:12 +01:00
0a6fdb9c13 HW: Pass System to MMIO handlers. 2022-11-23 05:52:21 +01:00
a36a5c1308 CoreTiming: Pass Core::System to Events. 2022-11-06 17:54:58 +01:00
e8221d7948 Common/PointerWrap: Remove DoPOD
This was added in 385d8e2b15, but became somewhat redundant with Do in 4c7bbd96e4, and completely redundant now that std::is_trivially_copyable_v is well-supported.
2022-10-06 11:25:36 -07:00
8882eb040a PixelEngine: Convert to BitField and enum class 2022-03-29 15:34:43 -07:00
45b8ebeb25 PixelEngine: Remove old comment
This comment was added in 76d24f2c0d (the link was updated in 5799824b22, but both are dead now).  An archived version is at https://web.archive.org/web/20090830050441/http://developer.nvidia.com/object/General_FAQ.html#t6 but it's about the number of available texture units, which doesn't seem relevant to PixelEngine.
2022-03-29 15:34:43 -07:00
d8825f5635 Config: Port dual core setting to new config system. 2022-01-09 21:29:11 +01:00
f5c550e9cb Delay singlecore gpu interrupts
Fixes Bomberman Jetters in single core mode.

When single core mode pauses the CPU to execute the GPU
FIFO it greedily executes the whole thing. Before this commit,
Finish and Token interrupts would happen instantly, not even
taking into account how long the current FIFO window has
taken to execute. The interrupts would be effectively backdated
to the start of this execution window.

This commit does two things: It pipes the current FIFO window
execution time though to the interrupt scheduling and it enforces
a minimum delay of 500 cycles before an interrupt will be fired.
2021-11-25 11:11:01 +13:00
1161af8059 VideoCommon: Abstract bounding box
This moves much of the duplicated bounding box code into VideoCommon,
leaving only the specific buffer implementations in each backend.
2021-10-04 15:51:24 -04:00
e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
ce8004c9c1 Lint: End of namespace 2021-06-07 12:55:52 +04:00
3d9b2aa005 VideoCommon: Migrate over to fmt
Migrates off the printf-based formatting where applicable.
2020-11-17 21:23:58 -05:00
2c9ec6cb8a VideoCommon/BoundingBox: Move PixelShaderManager::SetBoundingBoxActive() calls into Enable()/Disable()
Now that we have an actual interface to manage things, we can stop
duplicating the calls to to the pixel shader manager and remove the
need to remember to actually do so when disabling or enabling the
bounding box.
2019-12-05 11:57:58 -05:00
9bd533ebe4 VideoCommon/BoundingBox: Make interface for querying bounding box data
Rather than expose the bounding box members directly, we can instead
provide an interface for code to use. This makes it nicer to transition
from global data, as the interface function names are already in
place.
2019-12-05 11:48:42 -05:00
f6e3a39c0e CommandProcessor: Remove unnecessary include
Gets rid of some indirect inclusion.
2017-09-02 13:34:21 -04:00
7d78cf0f6f ShaderGen: Implement pixel ubershaders 2017-07-30 17:43:59 +10:00
ba1decf7bc PixelEngine: Use a DirectRead for the token.
No need to call a std::function, and a few games poll this value very often.
2017-01-27 07:49:47 +01:00
23d99f2f2c specify custom brace style to fix unions
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
f0aa9b3751 Reorganise a ton of logs level
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
aa16282516 Core: Change CoreTiming event key from int to EventType*
Replace 'int' keys with something that carries type information.
Performance is neutral.
2016-09-03 14:55:44 +10:00
9fb6f93ca1 PixelEngine: Add missing static specifier for s_token_finish_mutex. 2016-09-01 17:28:48 +02:00
c1184957a5 Run clang-format on missed files
`clang-format`s files that lint missed because of the bug. Fortunately,
not much.
2016-08-11 21:14:39 +02:00
3443a10030 CoreTiming: Merge ScheduleEvent variants into one function
Now Core::IsCPUThread() only gets called once when using the AnyThread
variant. Also, I think the enum approach makes calling code clearer.
2016-08-11 12:45:57 +02:00
82bdc4ef86 PixelEngine: Delay token updates by events.
To still get a speedup, mark if already an event is queued.
If so, don't raise a new event.
2016-08-10 13:24:57 +02:00
a051db9792 PixelEngine: Cleanup PE Token.
This also affects the behavior a bit, it should now fit better to the one of the commonly more used PE Finish flag.
2016-08-10 10:07:53 +02:00
367e1b4d4c PixelEngine: Drop write-only variables. 2016-08-10 10:07:53 +02:00
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
5e50c37c13 Alternative fix: promote cycleslate to an s64 everywhere.
Also changed a few functions to be static.
2016-04-10 02:13:06 +12:00
32ce2be2bf Fifo: Make g_use_deterministic_gpu_thread a TU-local variable 2016-01-25 05:24:03 -05:00
d9fec92628 VideoCommon: Header cleanup
Also remedies places where the video backends and core rely on things
being indirectly included.
2016-01-17 20:11:45 -05:00
5f244abf28 Fifo: Create a "Fifo" namespace. 2016-01-12 23:28:26 +01:00
c375111076 Options: merge SCoreStartupParameter into SConfig 2015-06-12 19:07:45 +02:00
9c63b78397 Fix indeterminism in GPU thread mode. 2015-06-06 02:14:06 -04:00
1ba3b4e7ac CommandProcessor: Replace volatile usages with atomics
Also remove said variables from being globals.
2015-05-27 03:53:29 -04:00
ec03196267 PixelEngine: Replace volatile usages with atomics
Also removes two unused volatile variables.
2015-05-27 02:39:55 -04:00
30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
5799824b22 Fix dead link 2015-05-01 21:42:50 +02:00
b020ae1c5d Fifo: rewrite sync on idle skipping hack
Now it's done without a busy loop
2015-04-06 12:35:35 +02:00
47be9d8e6b Clean up usage of ScheduleEvent_Threadsafe. 2015-01-30 14:48:23 -08:00
c211450b99 OGL: implement bounding box support with ssbo
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-11-17 21:20:32 +01:00
176ea06e82 Get buildbot to compile. 2014-10-10 12:28:15 +01:00
2d4b7e3f3f Reimplement Bounding Box calculation using the software renderer. 2014-10-10 12:27:06 +01:00
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00