Anthony
8a5c9a6445
Consolidate lighting calculations
2021-01-27 22:48:06 +13:00
Anthony
c722d80503
Get view transform from transform state
2021-01-27 22:48:05 +13:00
Anthony
54e0c08ef1
Let MultiplyTransform call SetTransform
...
Detect if it didn't
2021-01-27 22:48:05 +13:00
Anthony
c77582524d
Fix incorrect toViewer vector when LocalViewer is enabled
2021-01-27 22:48:05 +13:00
PatrickvL
134dd70117
Optimize away SpecularEnable and PointScaleEnable, by resetting the related variables on CPU.
...
This shaves off almost 50 vertex shader instructions (down to 705 with this).
2021-01-27 22:48:05 +13:00
PatrickvL
bd76d67c78
Indentation fixes & add a 'const' prefix to all single-assigned variables, and 'static' for all literal assignments.
2021-01-27 22:48:05 +13:00
PatrickvL
39e91ffec6
Fixed Function HLSL : Optimized ColorVertex handling in DoMaterial, by removing it's check froM HLSL, and replace that by CPU replacing all MaterialSource's with D3DMCS_MATERIAL when X_D3DRS_COLORVERTEX is disabled. This shaves off 13 vertex shader instructions.
2021-01-27 22:48:05 +13:00
PatrickvL
0245cc6ee8
Optimized vertex blending by only recalculating the required world/view matrices, and a simplified HLSL implementation
2021-01-27 22:48:05 +13:00
PatrickvL
8200cd8e43
Fixed Function : Extract method D3D8TransformState::RecalculateDependentMatrices, called via two getters using a dirty boolean, preventing needless recalculations.
2021-01-27 22:48:05 +13:00
PatrickvL
8b8d1e0d39
Fixed Function : Fixed CXBX_ALL_TEXCOORD_INPUTS build, avoid ambiguous symbol redeclaration
2021-01-27 22:48:05 +13:00
Anthony
43be445c37
Copy constants regardless of dirty state
2021-01-27 22:48:05 +13:00
Anthony Miles
b4685c1dc2
Initialize all registers for fixed function mode
2021-01-27 22:48:05 +13:00
Anthony Miles
f98d040a65
Enable fixed function vertex shader
...
- Various bits of glue code
- Toggle Shader/D3D9 with F2
- Replace vertex shader mode flags with enum
2021-01-27 22:48:05 +13:00
Anthony
5720444c6b
Fix normal transformations
...
- Keep track of transforms set by the title
- Transform normals by the inverse transpose of the position transform
- X_D3DTRANSFORMSTATETYPE enum
2021-01-27 22:48:05 +13:00
Anthony Miles
3bfad0327f
Xbox fixed function vertex shader (not yet enabled)
...
The shader should behave similarly to D3D9's fixed function pipeline
But supports Xbox extensions and helps to move off D3D9
Co-authored with PatrickVL
2021-01-27 22:48:05 +13:00
Anthony Miles
99a96e675d
Add FixedFunctionState to keep track of D3D fixed function lights
2021-01-27 22:48:05 +13:00
Anthony Miles
ddc62ad00e
Extract HLSL compilation to a method
2021-01-27 22:48:05 +13:00
ergo720
f44f35f6fa
Merge pull request #2076 from RadWolfie/add-cmake-install
...
Implement CMake Install Support
2021-01-26 13:48:36 +01:00
PatrickvL
fe398a4562
Merge pull request #2126 from NZJenkins/fix-wm-paint
...
Ensure WM_PAINT is handled correctly
2021-01-26 09:52:09 +01:00
Anthony
20549fec19
Ensure WM_PAINT is handled correctly
...
Otherwise, Windows will send WM_PAINT messages non-stop and burn CPU doing nothing
This fixes an odd behaviour where moving the mouse over the window could increase FPS
2021-01-26 20:08:58 +13:00
Luke Usher
ae43ded58b
Merge pull request #2125 from Cxbx-Reloaded/revert-2109-fix-vsh-initialize
...
Revert "Initialize vertex shader outputs to vertex shader attribute values"
2021-01-21 09:45:30 +00:00
NZJenkins
515df2b533
Revert "Initialize vertex shader outputs to vertex shader attribute values"
2021-01-21 21:59:51 +13:00
PatrickvL
8c1ee7d755
Merge pull request #2124 from Cxbx-Reloaded/revert-2122-high-perf-graphics-ldr
...
Revert "Export high performance graphics hints in cxbxr-ldr.exe"
2021-01-20 09:56:21 +01:00
PatrickvL
b3f1e610ba
Merge pull request #2123 from NZJenkins/optimize-cnk2
...
Reduce the amount of work done per draw
2021-01-20 09:55:25 +01:00
RadWolfie
7e838ff677
workflow: update azure-pipelines.yml to use CMake's install method
2021-01-19 23:23:56 +00:00
RadWolfie
8d741e66d3
workflow: update appveyor.yml to use CMake's install method
2021-01-19 23:23:56 +00:00
RadWolfie
e39a9a0420
workflow: update GitHub Action CI yml to use CMake's install method
2021-01-19 23:23:56 +00:00
RadWolfie
ab01047450
cmake: add CMake install method
2021-01-19 23:23:56 +00:00
RadWolfie
6f62ec001b
update submodules' fixes
2021-01-19 23:23:56 +00:00
Anthony
d7f0957cba
Note why LOG_TEST_CASE is where it is
2021-01-19 01:47:02 +13:00
RadWolfie
dab91c1913
remove broken source file path originally in pull request
2021-01-18 05:42:38 -06:00
Anthony
ce369a6259
PR cleanup
...
* Create index cache size variable
* Use std::optional
* Make PreviousStates a class variable
* Remove double-cast
* Use LOG_TEST_CASE in VertexShaderSource
Also move LOG_TEST_CASE to CxbxKrnl.h since it's unuseable from Logging.h
2021-01-19 00:32:56 +13:00
Luke Usher
29719e8fc1
Revert "Export high performance graphics hints in cxbxr-ldr.exe"
2021-01-17 22:03:42 +00:00
Anthony
27dbf03743
Only parse a vertex shader if we can't find it in the cache
...
Try to clean up and rationalize some things along the way
* GetVshFunctionSize lets us hash an Xbox vsh function, so we can check the cache before trying to parse it
* Consider that the vertex shader header won't be passed to the shader parsing code anymore:
Combine header/headerless paths in EmuParseVertexShader
Drop Header information from IntermediateVertexShader as it's no longer used
Remove EmuGetShaderInfo which looked at the header
* Make XboxVertexShaderDecoder static method in a namespace
2021-01-17 20:26:44 +13:00
Anthony
301205051b
Increase vertex buffer cache size
...
Improves performance in Crash Nitro Kart, which did more draws per frame than the cache size.
2021-01-17 20:25:48 +13:00
Anthony
363d91faff
Expand the index cache to a generous size
...
This seems to slightly increase performance in Crash Nitro Kart
which can do ~4000 draws per frame
2021-01-17 20:25:48 +13:00
Anthony
8eeb061a42
Avoid setting texture states to the same value they already are
...
This improves performance in Crash Nitro Kart
2021-01-17 20:25:48 +13:00
ergo720
59534bdbcc
Merge pull request #2120 from RadWolfie/relocate-controller-dialogs
...
Relocate controller dialogs into its own folder
2021-01-14 15:40:53 +01:00
PatrickvL
70088b3697
Merge pull request #2122 from CookiePLMonster/high-perf-graphics-ldr
...
Export high performance graphics hints in cxbxr-ldr.exe
2021-01-12 22:41:32 +01:00
Silent
0bfc4c4479
Export high performance graphics hints in cxbxr-ldr
2021-01-12 21:39:22 +01:00
RadWolfie
e7f2e88784
Merge pull request #2121 from Cxbx-Reloaded/LukeUsher-update-compatibility-link
...
Update Readme.md: Link to Compatibility website
2021-01-12 10:19:24 -06:00
Luke Usher
ffee8ace55
Update Readme.md: Link to Compatibility website
2021-01-12 15:39:45 +00:00
RadWolfie
4d84e71363
relocate controller dialogs into its own folder
2021-01-12 14:24:03 +00:00
Luke Usher
e0f41fe6f7
Merge pull request #2117 from NZJenkins/clear-fix
...
Ensure the xbox viewport is applied when Clear is called
2021-01-11 08:11:00 +00:00
PatrickvL
aa3c09c430
Merge pull request #2118 from CookiePLMonster/load-vertex-shader-ltcg
...
Split D3DDevice_LoadVertexShader_0 into two OOVPAs
2021-01-10 16:17:19 +01:00
Silent
55932e5493
Split D3DDevice_LoadVertexShader_0 into two OOVPAs
...
XDK-5849 version of this LTCG function passes arguments in EAX and EDX
2021-01-10 15:48:05 +01:00
Anthony
38a0f82980
Ensure the xbox viewport is applied when Clear is called
...
This fixes an issue introduced in 46ec7516fa
The xbox viewport was applied in UpdateNativeD3DResources instead of the SetViewport patch, so wouldn't be applied until a Draw call.
Crash Tag Team Racing graphics would be blacked out whenever the rear view mirror appeared on the screen.
2021-01-11 00:06:15 +13:00
PatrickvL
875f97b5dd
Merge pull request #2112 from x1nixmzeng/fix-ro-launch
...
Fixed booting games from write-protected drives
2021-01-03 17:57:12 +01:00
x1nixmzeng
9e05b3342d
Log a fatal message if registering a host device fails
2021-01-02 00:20:32 +00:00
x1nixmzeng
dfe9a19b0d
Fixed path registration on write protected drives
2021-01-01 15:52:49 +00:00