Commit graph

40 commits

Author SHA1 Message Date
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Eidolon
d2b3b15213 Restore imgui rendering
Was lost when pass architecture was removed; now it should work again.
2024-10-30 09:08:04 -05:00
Eidolon
fc05db7441 rhi: Use renderpasses as a stack
This way when you pop a render pass, it will restore the previous
renderpass state if there was one. Allows for rendering code to enter
and leave the default render pass without interfering with other drawing
code.
2024-10-30 09:08:04 -05:00
Eidolon
136761cf3b rhi: Remove Pipeline, Uniform/BindingSet, add dynamic state
The pipeline abstraction mimicked Vulkan and d3d12 explicit pipeline state objects
but, like GraphicsContext, was ill-considered for the kinds of drawing
behavior SRB2 uses. Rather than push this complexity into the drawing
code, it will instead be the responsibility of the backend to manage
explicit pipeline objects if necessary.

Now, drawing code must create a Program instance, bind it, and set the
rasterizer state to do the equivalent. Uniform, sampler, and vertex
attribute bindings are significantly simpler to set up now.
2024-10-30 09:08:04 -05:00
Eidolon
dae2e8ba17 rhi: Remove GraphicsContext
I've come to the conclusion that some aspects of RHI are overengineered
to suit a future where we would theoretically support Vulkan with
minimal implementation effort. In an effort of architectural astronaut
engineering this has had the consequence of making much of the code
interacting with RHI significantly more complex.

The GraphicsContext was originally an opaque object to wrap and
contextualize operations that would eventually be inserted into a Vulkan
CommandBuffer for dispatch. In practice, for the GL backend, this does
nothing but introduce another pointer to pass around across all RHI
code, when it had already been previously accepted that the idea of
recording multiple GraphicsContexts at the same time was infeasible.

Thus, I'm choosing to excise GraphicsContext entirely. This doesn't do
much except remove passing around the context object. This is one of
many changes I would like to make that would simplify RHI-related code
and defer the complexity to the hypothetical future. Vulkan can come at
a later date, and we can solve the problems of Vulkan then. Right now, I
am actually more concerned for supporting a d3d9 renderer to shore up
that Intel 945GM laptop GPU support gap we currently have.
2024-10-30 09:08:04 -05:00
Sally Coolatta
c4b11026ab Ensure no FPS/Delay on map thumbnails 2024-08-05 00:41:05 -04:00
Eidolon
140a56f513 Add build option to disable discord RPC 2024-04-25 21:05:58 -05:00
Sally Coolatta
7dfa597c7d SRB2 -> DRRR copyright in src, acs, android folder
Be consistent with toaster's recent changes to copyright
2024-04-05 02:08:23 -04:00
AJ Martinez
070525f711 Always show delay (remove cv_showping) 2024-03-22 19:11:04 -07:00
AJ Martinez
0072170b2e Add SalCRT Sharp 2024-03-17 17:50:29 -07:00
Eidolon
2e0fb999b3 Use bilinear filtering for CRT shader 2024-03-07 23:25:47 -06:00
Eidolon
123477dac9 Add Sharp Bilinear mode, make default 2024-03-07 22:03:36 -06:00
Eidolon
0156db0dc1 Add optional CRT screen effect 2024-03-06 22:39:21 -06:00
James R.
a11e8d793a finish_legacy_ogl_update: merge with temp_legacy_finishupdate_draws, draw avrecorder stats in opengl 2023-10-03 21:28:34 -07:00
James R.
2ec5d3e6b0 Add scr_scale, scr_x, scr_y cvars to scale and adjust viewport position 2023-09-30 16:50:41 -07:00
James R.
37dc1189bb srb2::hwr2::BlitRectPass::set_output: set x/y as well 2023-09-30 16:38:56 -07:00
Eidolon
f62cf5fc83 Tracy Instrument I_FinishUpdate, software display 2023-09-18 16:18:38 -05:00
Eidolon
42e5646c15 Add Tracy frame time instrumentation 2023-09-18 16:16:08 -05:00
Eidolon
78ccaf361b hwr2: upscale chosen resolution to desktop res 2023-09-01 15:30:04 -05:00
Eidolon
6f580606cd hwr2: Remove pass infrastructure
It's not worth trying to force the engine to conform to deferred
drawing.
2023-09-01 15:30:04 -05:00
Eidolon
2b01d8a589 rhi: Reset patch atlas if patch is freed 2023-04-15 22:19:01 -05:00
Eidolon
3ad3dd5cd9 rhi: Extract patch atlas cache to own class 2023-04-15 21:04:07 -05:00
Eidolon
356e3317df hwr2: Do postimg in hardware
Depends on updated shaders
2023-04-02 19:46:21 -05:00
James R
31ee3577fd devmode: draw over literally everything else
Draws over ping and FPS counters.
2023-03-29 00:11:01 -07:00
Eidolon
ddf9de1757 Adjust ImGui frame starts to allow ImGui in passes 2023-03-23 11:31:44 -05:00
Eidolon
88e888ae8d Move legacy FinishUpdate draws to i_video_common 2023-03-23 11:26:25 -05:00
James R
8d25820c91 Move screenshot pass out of basic_rendering, into normal_rendering
This fixes a bug with avrecorder capturing a mostly white
frame at the beginning of a wipe. This was because
wipe_capture_start_rendering depends on basic_rendering
and a wipe could occur before any 2d elements are batched
for the current frame, thus producing a white frame when
basic_rendering is passed. It only lasted for one frame
because the PREVIOUS frame is used for the wipe itself.
This is also why the white frame was not visible
on screen.
2023-03-03 11:24:57 -08:00
Eidolon
98ce714614 hwr2: integrate avrecorder with RHI and legacy GL 2023-02-27 19:49:45 -06:00
Eidolon
7c01136247 hwr2: Imgui EndFrame if we didn't Render
fixes a failed ImGui assertion in Debug builds
2023-02-26 18:47:42 -06:00
Eidolon
1958394635 hwr2: add g_wipeskiprender 1-frame workaround 2023-02-26 18:47:42 -06:00
Eidolon
31ce947659 hwr2: overhaul wipe rendering 2023-02-26 18:47:42 -06:00
Eidolon
0a9e9bbbae hwr2: use palette manager in twodee 2023-02-26 18:47:42 -06:00
Eidolon
e875c8e20d hw2: add screenshot pass 2023-02-26 18:47:42 -06:00
Eidolon
d855d96a10 hwr2: Add hardware 2D rendering 2023-02-26 18:47:42 -06:00
toaster
e0ac6b6044 Music credits show up in more contexts
- Drawn over the top of basically everything when enabled.
- Update song credit on
    - Menu music update (can sometimes clear it)
    - Intermission begin
    - Vote begin
    - Return to title (by clearing it)
2023-02-25 22:54:36 +00:00
James R
1ba7842068 hwr2 legacy opengl: restore fps counter etc 2023-01-14 18:57:45 -08:00
Eidolon
ccc10eadd0 hwr2: Reformat C++ code 2023-01-14 19:59:41 -06:00
Eidolon
fcb4dfe3d7 hwr2: Restore legacy OpenGL temporarily 2023-01-14 19:52:33 -06:00
Eidolon
01ddbf6dcf (WIP) hardware: add render hardware interface 2023-01-14 18:40:26 -06:00