Commit graph

21257 commits

Author SHA1 Message Date
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