RaveYard
6de6ae28e9
Merge Surface into hwrenderer::Surface
2023-09-25 21:20:01 +02:00
RaveYard
fc2704b902
Use FVector4 for plane in struct Surface
2023-09-25 21:20:01 +02:00
RaveYard
9635a9f4fb
TMP need uvs back
2023-09-25 21:20:01 +02:00
RaveYard
8111b05888
Micro clean-up
2023-09-25 21:20:00 +02:00
RaveYard
15e5f7e77a
Re-enable cpu trace test
2023-09-25 21:20:00 +02:00
RaveYard
96e45daa08
Shuffle around member variables in struct Surface
2023-09-25 21:20:00 +02:00
RaveYard
9137a5c2e7
GenerateLightmap in DFrameBuffer
2023-09-25 21:20:00 +02:00
RaveYard
27063276e5
LIghtmapUVs to FVector2
2023-09-25 21:20:00 +02:00
RaveYard
cb730eabe0
WIP Cleanup of maploader
2023-09-25 21:20:00 +02:00
RaveYard
3495a5ca13
First step towards refactoring
2023-09-25 21:20:00 +02:00
RaveYard
c63fc707a4
WIP fake raytracer output
2023-09-25 21:20:00 +02:00
RaveYard
88e6d459ef
Buffer data now in Levelmesh
2023-09-25 21:20:00 +02:00
RaveYard
52220a5004
WIP VkLightmap integration
2023-09-25 21:19:59 +02:00
RaveYard
22dbbec4cc
Fix after rebase
2023-09-25 21:19:59 +02:00
RaveYard
3af8f477e7
CPU raytrace basic test
2023-09-25 21:19:59 +02:00
RaveYard
73030b9315
DoomLevelMesh LightmapUVs are now finally correct
2023-09-25 21:19:59 +02:00
RaveYard
2bce8b86c3
Fix bad UV indices in FinishSurface and export UVs in dumplevelmesh
2023-09-25 21:19:59 +02:00
RaveYard
73b968d79a
Atlas UV mapping
2023-09-25 21:19:59 +02:00
RaveYard
e09ac00121
Minor cleanup
2023-09-25 21:19:59 +02:00
RaveYard
005bae7348
WIP BuildSurfaceParams from ZDRay
2023-09-25 21:19:59 +02:00
RaveYard
1849d31d7c
Add bounds.cpp from ZDRay
2023-09-25 21:19:58 +02:00
Magnus Norddahl
f539d387f2
Adjust names of variables for better readability
2023-09-25 21:19:58 +02:00
Christoph Oelckers
71d06a397e
fix lump loading.
2023-09-25 21:19:58 +02:00
Magnus Norddahl
c5b03e016e
Import ZDRay's GPURaytracer class as VkLightmap as the first step in letting the backend update them dynamically
2023-09-25 21:19:58 +02:00
Magnus Norddahl
a45fab65e8
Fix crash when frame buffers are resized
2023-09-25 21:19:58 +02:00
RaveYard
ff7dff993d
Fix uninitialized bSky
2023-09-25 21:19:58 +02:00
RaveYard
34f8b8524b
Add DumpLevelMesh ccmd
2023-09-25 21:19:58 +02:00
RaveYard
60f8c11584
Backport support for Line_Horizon from ZDRay into doom_levelmesh
2023-09-25 21:19:58 +02:00
RaveYard
5e24582c3c
Configurable sampling per custom texture in material shaders
2023-09-25 21:19:58 +02:00
nashmuhandes
494ec1b3f9
Go back to the hex font for now
2023-09-25 21:19:57 +02:00
Magnus Norddahl
d94eb5cb31
Use a truetype font for the options menu, although a better one could probably be chosen to match the theme of doom
2023-09-25 21:19:57 +02:00
nashmuhandes
5934fd6ac9
Fix CHANGELEVEL_NOAUTOSAVE logic
2023-09-25 21:19:07 +02:00
RaveYard
01a6dafe6a
Fix strange crash when player's weapon is removed.
2023-09-25 21:19:07 +02:00
Christoph Oelckers
ed5d81271b
consider LEVEL9_NOAUTOSAVEONENTER unfriendly
2023-09-25 21:19:07 +02:00
nashmuhandes
f3b4c6047e
Add CHANGELEVEL_NOAUTOSAVE flag to ChangeLevel to allow scripted level-switching to bypass autosaving
2023-09-25 21:19:07 +02:00
nashmuhandes
693ed25414
Add MAPINFO NoAutoSaveOnEnter - this fully disables autosaves when a map is just entered (ignoring the user's autosave preference).
2023-09-25 21:19:07 +02:00
nashmuhandes
e5a4ed55f3
- Serialize Level.nousersave and Level.noautomap properly
...
- Also allow them to be settable directly in a map's MAPINFO block (NoUserSave and NoAutoMap respectively)
# Conflicts:
# src/p_saveg.cpp
2023-09-25 21:19:07 +02:00
Magnus Norddahl
f8f9cf707b
Add support for gl_multithread while gl_meshcache is active
...
Stop building geometry for lines that have a portal (when gl_meshcache is active)
2023-09-25 21:19:07 +02:00
Magnus Norddahl
256dd8fa3d
Hook up portals to gl_meshcache
2023-09-25 21:19:06 +02:00
Magnus Norddahl
dba5399635
Add HWDrawContext so that multiple threads can maintain their own drawinfo without need for synchronization
2023-09-25 21:19:06 +02:00
Magnus Norddahl
0adb152913
Create a RenderState object for each thread
2023-09-25 21:19:06 +02:00
Magnus Norddahl
6739b079d0
Add support for submitting command buffers from worker threads
2023-09-25 21:19:06 +02:00
Magnus Norddahl
c06123e040
Make VkMaterial::GetDescriptorSet thread safe
2023-09-25 21:19:06 +02:00
Magnus Norddahl
6ba64b8e2f
Add thread safe render pass and pipeline creation and fetching
2023-09-25 21:19:06 +02:00
Magnus Norddahl
9f62679684
Move VkRSBuffers to new file
2023-09-25 21:19:06 +02:00
Magnus Norddahl
0bb6b2c298
Split postprocess pipeline creation to its own files
2023-09-25 21:19:06 +02:00
Magnus Norddahl
17f8027cc9
Create RenderState buffers for each thread
2023-09-25 21:19:05 +02:00
Magnus Norddahl
60fb2af02f
Remove FFlatVertexBuffer
2023-09-25 21:19:05 +02:00
Magnus Norddahl
8c4ddea735
Prepare FFlatVertexBuffer for removal
2023-09-25 21:19:05 +02:00
Magnus Norddahl
eb3878ad78
Remove IRenderQueue
2023-09-25 21:19:05 +02:00
Magnus Norddahl
c43cef96d1
Remove the reserved vbo_shadowdata so only hw_vertexbuffer still needs it
2023-09-25 21:19:05 +02:00
Magnus Norddahl
2c9a1cbab7
Fix offset bug when using more than 1024 lights in a scene
2023-09-25 21:19:05 +02:00
Magnus Norddahl
e4578a7626
Improve vid_fps stats
2023-09-25 21:19:05 +02:00
Magnus Norddahl
795c0d90de
Use a uniform buffer for the light list
2023-09-25 21:19:05 +02:00
Magnus Norddahl
bc2105eab9
Change the matrix interface on RenderState so the backend doesn't have to try detect changes on each Apply
...
Include the texture matrix in the mesh builder
2023-09-25 21:19:04 +02:00
Magnus Norddahl
fd3febaf7a
Don't use VkHardwareDataBuffer for internal backend buffers
2023-09-25 21:19:04 +02:00
Magnus Norddahl
b413c80e49
Let the backend manage the shadowmap buffers
2023-09-25 21:19:04 +02:00
Magnus Norddahl
930107636e
Move bone buffer to backend
2023-09-25 21:19:04 +02:00
Magnus Norddahl
d24ffc021b
Manage the light buffer in the backend
2023-09-25 21:19:04 +02:00
Magnus Norddahl
62a227621a
Manage viewpoint buffer internally in the backend
2023-09-25 21:19:04 +02:00
Magnus Norddahl
309330d222
There is no reason to default to poor stuttery performance
2023-09-25 21:19:04 +02:00
Magnus Norddahl
e7610904dd
Adjust meshbuilder to vkdoom changes and make sure the drawinfo functions always allocate vertices from the output renderstate object
2023-09-25 21:19:03 +02:00
Magnus Norddahl
34470aa588
Merge all sectors into one mesh
2023-09-25 21:19:03 +02:00
Magnus Norddahl
1a64adf2be
Add gl_meshcache cvar for toggling it on and off
2023-09-25 21:19:03 +02:00
Magnus Norddahl
9365af7bfe
Upload vertices to vertex buffers
2023-09-25 21:19:03 +02:00
Magnus Norddahl
43cef43e9b
Add support for drawing flats into the mesh cache
2023-09-25 21:19:03 +02:00
Magnus Norddahl
0ee22ccd80
Test drawing all cached sectors every frame
2023-09-25 21:19:03 +02:00
Magnus Norddahl
bd762a17eb
Only create a Mesh if anything was actually drawn
2023-09-25 21:19:03 +02:00
Magnus Norddahl
31a861f343
Build a mesh cache for all sectors
2023-09-25 21:19:03 +02:00
Magnus Norddahl
528afe3ee3
Fix misc state init issues
2023-09-25 21:19:02 +02:00
Magnus Norddahl
fadda8146d
Add the most basic implementation of a Mesh drawer as technically possible :)
2023-09-25 21:19:02 +02:00
Magnus Norddahl
3cae271219
Adjust HWWall to allocate vertices from renderstate
2023-09-25 21:19:02 +02:00
Magnus Norddahl
4be3e2d53a
Add a basic renderstate->mesh builder class
2023-09-25 21:19:02 +02:00
Magnus Norddahl
b5e2de91a4
Add hint which of the uniforms are used by SetColor (maybe later move them to a secondary uniform block for independent updating)
2023-09-25 21:19:02 +02:00
Magnus Norddahl
367c1f8aaa
Remove mAlphaThreshold
2023-09-25 21:19:02 +02:00
Magnus Norddahl
5de7c1ee03
Remove mClipSplit
2023-09-25 21:19:02 +02:00
Magnus Norddahl
59c72e98a4
Remove mLightParms
2023-09-25 21:19:02 +02:00
Magnus Norddahl
f80807d26a
Remove unused uniforms and restrict push constants to only control offsets into buffers
2023-09-25 21:19:02 +02:00
Magnus Norddahl
6d3cb20699
Remove EPassType from VkShaderManager::Get and CompileNextShader() from VkShaderManager constructor
2023-09-25 21:19:01 +02:00
Magnus Norddahl
f220577ca4
Change the options menu to follow a more logical modern layout
...
Remove the old simple menu as that only made things worse
2023-09-25 21:19:01 +02:00
Magnus Norddahl
85f138841c
Only add the lightmode actually being used into the shader
2023-09-25 21:19:01 +02:00
Magnus Norddahl
ca7e5be6b4
Remove virtual inheritance
2023-09-25 21:19:01 +02:00
Magnus Norddahl
ae72639853
Begin removing binding points from the hwrenderer layer.
...
Well known buffers should be created and managed by the backend, otherwise the backend just becomes an OpenGL emulator.
2023-09-25 21:19:01 +02:00
Magnus Norddahl
c22c9bea29
Remove dead code
2023-09-25 21:19:01 +02:00
Magnus Norddahl
9caa966f6f
Add GetDevice function instead of accessing device member directly
2023-09-25 21:19:01 +02:00
Magnus Norddahl
3551e1e5e9
More folder adjustments
2023-09-25 21:19:00 +02:00
Magnus Norddahl
dd9feeea45
Change the folder structure of the vulkan backend to better reflect what is going on
2023-09-25 21:19:00 +02:00
Magnus Norddahl
6781b3215c
Fix null pointer crash when drawing sprites with a null actor
2023-09-25 21:19:00 +02:00
Magnus Norddahl
447932025f
Add support for gl_light_raytrace for cards that do not support rayquery
2023-09-25 21:19:00 +02:00
Christoph Oelckers
16ad25b382
disable 'unfriendly' option like blocking automap or savegames via #ifdef.
...
Leave them in the code for modified engines but in the context of Doom using them has to be considered extremely unfriendly to the player so they should not be available physically.
2023-09-25 21:19:00 +02:00
nashmuhandes
0dbf988d35
Allow ZScript to control saving and the automap
2023-09-25 21:19:00 +02:00
nashmuhandes
1bae44c39b
Stop rotating the models if the game is actually paused.
2023-09-25 21:19:00 +02:00
nashmuhandes
447f825831
Allow gl_texture to affect models. Aids in debugging lightmap contribution on models.
2023-09-25 21:18:59 +02:00
nashmuhandes
da1b0530b9
Add hitbox debug rendering (r_showhitbox)
2023-09-25 21:18:59 +02:00
Magnus Norddahl
e1b333432d
Cache the result of traces so that it only needs to be done for visible moving actors
2023-09-25 21:18:59 +02:00
Magnus Norddahl
d97f9f3055
Fix sunlight not working on models
2023-09-25 21:18:59 +02:00
Magnus Norddahl
c23a109105
Improve shader performance significantly by only including raytracing or shadowmaps in the shader if enabled
2023-09-25 21:18:59 +02:00
Magnus Norddahl
583f194622
Fix coronas
2023-09-25 21:18:59 +02:00
Magnus Norddahl
162ebe0f18
Avoid stepping further into VkShaderManager::Get unless the shader has not been compiled
2023-09-25 21:18:58 +02:00
Magnus Norddahl
f11318ff99
Fix misc shader related issues
2023-09-25 21:18:58 +02:00