-
-
Notifications
You must be signed in to change notification settings - Fork 301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nv2a: add new NV_PGRAPH parameters, fix W_param tests, ZMinMaxControl tests, see through and missing shadows #1895
Open
polymetal0
wants to merge
30
commits into
xemu-project:master
Choose a base branch
from
polymetal0:fix/nv2a-wparam-zminmaxcontrol
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
nv2a: add new NV_PGRAPH parameters, fix W_param tests, ZMinMaxControl tests, see through and missing shadows #1895
polymetal0
wants to merge
30
commits into
xemu-project:master
from
polymetal0:fix/nv2a-wparam-zminmaxcontrol
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Passing clipRange variable as a uniform and performing perspective divide in fragment shader for z_perspective = true solves the see through issue that affects many games. Shader code for z_perspective = false is virtually unaltered.
They are still there, but unused
- z_perspective refactor to PixelShader and texture_perspective var added - vtx_inv_w and vtx_inv_w_flat vars totally removed - Fixes warping of textures from previous commit w/o breaking tests - Also fixes dashboard menu background regression
This reverts commit 4da74db.
- Regression of some fixed missing shadows from xemu-project#577, identified the source of the problem
Restores shadows for many games in xemu-project#577 w/o removing the Xbox dashboard background
Do not specify cull mode if NV_PGRAPH_SETUPRASTER_CULLENABLE = false
Partially fixes fixed function, w-buffer, z cull tests
- Discard fragments from shader - Implemented zbias when w-buffering - Clipping volume change to [-1 , 1] for OGL moved to frag shader to avoid floating point precission loss
- Added parameter NV097_SET_ZMIN_MAX_CONTROL_CULL_NEAR_FAR_EN_TRUE
- Added depth buffer variable to shaders to store w coordinate
- They are there just to test behavior and most likely incorrect, but close enough to HW. It's a good starting point for future work
- Fixed texture perspective issue in fixed function
You really scared me. I thought such a good PR was closed because there was no response for a long time... |
- This fixes OGL not refreshing display properly when running some tests
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have reuploaded this PR because renaming my fork's branch automatically closed the other one.
RECAP
Fixes/shows progress (captures taken in Vulkan, 2x)
![xemu-2025-01-11-23-13-46](https://private-user-images.githubusercontent.com/30195994/408335149-36d56822-66fe-454a-ad7e-27664c459b48.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzUxNDktMzZkNTY4MjItNjZmZS00NTRhLWFkN2UtMjc2NjRjNDU5YjQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5NzczZjg1YjliZmJiZmY4ZTBiYTI5M2FhMTc2YTBhOWU3YWU4ZDZlOGIxZjczZTI2ZGRhMjcxNTcwODM1OTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.iKQSI5B0Vn12AfELxd3bwRJJYP4RtxYYT5ah9ByMj38)
![xemu-2025-01-11-23-13-50](https://private-user-images.githubusercontent.com/30195994/408335154-3c971e98-eebe-4017-aa36-48aa6fef7aaf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzUxNTQtM2M5NzFlOTgtZWViZS00MDE3LWFhMzYtNDhhYTZmZWY3YWFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU5MzM2NmM2NmJlODA5ODllNTdhOGZmNzhmOGE4MTc5YzVkNmZhMGQ5OGJhNThiMDRhZDRlNzg1YWUxZDU1OGQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uDzrZbcRt3jXW5ilNaQpxSNUaWKHGGA7Xxgyibj-VbI)
![xemu-2025-01-11-23-14-04](https://private-user-images.githubusercontent.com/30195994/408335158-29c7961c-0629-4e56-a665-04249f70d176.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzUxNTgtMjljNzk2MWMtMDYyOS00ZTU2LWE2NjUtMDQyNDlmNzBkMTc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZiZmEwYTg4NzJlYTNmZDg1NjU3MzFiOWVhYjExNTljM2U3ODIwZTQ2NTQyODRhMDk4NWM2ZjE4YjAwN2FmNDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AlNOlld5JrMRywec6eiVvys139slzCaOMtASO3dyT7A)
W_param tests
https://github.com/abaire/nxdk_pgraph_tests_golden_results/tree/main/W_param
PR
w_gaps
w_neg_strip
w_pos_strip (fixed)
ZMinMaxControl tests
![Ctrl_NEARFAR_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335704-06c8122c-c97d-46ed-8f53-a5136748a047.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MDQtMDZjODEyMmMtYzk3ZC00NmVkLThmNTMtYTUxMzY3NDhhMDQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxZTA3ODBhOTBmYzhjM2YxNWNlZTIwNjMyYzM3ZTIyN2UyNzFiOWVkMjU3MTMxODM3MDQzZmFjMTQ1NDYyZGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SXpHqGMIxmdXyTotQVvBUQNw9bSM9ImPtTxA-fEGais)
![Ctrl_NEARFAR_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335708-f194348e-40cf-40d1-b0c0-9fba438ce0d7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MDgtZjE5NDM0OGUtNDBjZi00MGQxLWIwYzAtOWZiYTQzOGNlMGQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFmMDExMGQyOGU5MGEzMDI3NWU2OWVkZjY3YjhiYzZiNjA3ZmI0ZmRhY2VlOTE4OTlhNGI4YzRkYzg4ODljMjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.HCTsLRMWwNWvJFTi9iq7Wvp5gSYYG1oVnSwTHFKwbu4)
![Ctrl_NEARFAR_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335711-7afba408-697d-4c2c-9244-02f4fcaa5528.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MTEtN2FmYmE0MDgtNjk3ZC00YzJjLTkyNDQtMDJmNGZjYWE1NTI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNkZTdlYzA3YjBkODRjY2MwNjgwMDFhODhhZDkyOGM0Y2U2NzU4NDgyMWEwMzczODM3MjQ3ZDI2YzkzMzc0MTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ompmtz-HAPj9PG9uvFvUl3tfPy1fXazhhYB8QdfduoE)
![Ctrl_NEARFAR_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335713-7e71ca15-6355-42c0-a598-d987c9238a82.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MTMtN2U3MWNhMTUtNjM1NS00MmMwLWE1OTgtZDk4N2M5MjM4YTgyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyODdhNmZlNTc5MWQwMDU5YzgyNWI4ZGZmNTZhNmY0NWY2YmU5ZDYwYTQ4MTliOGRmNDBkMTRiMTYzN2I1N2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MqeWR6FcuO6BdmuJ7jZ4f4O7CklzvJoXvZcsAdSSTEI)
![Ctrl_WBuf_NEARFAR_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335715-bbbb2fc1-98df-45e5-b781-3e454abee331.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MTUtYmJiYjJmYzEtOThkZi00NWU1LWI3ODEtM2U0NTRhYmVlMzMxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3Njk3MjQyYzg3NDVmYTE2MTJmYTRiZjQxYjgzM2FjZDVkZmEzYjU3ZjZmMTI0OTYxZWJhYzVkZDI4ZDMwZTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SFBOhpLHPj9BeQgBbBYtq3IOP_iD5qrYzttphGFWGno)
![Ctrl_WBuf_NEARFAR_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335717-1cb05f41-bc66-42d9-9971-8c36427cef73.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MTctMWNiMDVmNDEtYmM2Ni00MmQ5LTk5NzEtOGMzNjQyN2NlZjczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkYWMzMDk2NjJlNjBlMmE4MWYwMjA1ZTE1N2Y2YTUzOGI2NTFlY2Q2MmYyM2VmY2ZhMTYxNmZiZWZmMzE1MjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.B-SaNWPsN3RomqjLg3TUTE4xyfKS3GKBcD8GJm0cLCk)
![Ctrl_WBuf_NEARFAR_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335720-8f05d059-d713-4d41-b94c-adc7c87d1344.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MjAtOGYwNWQwNTktZDcxMy00ZDQxLWI5NGMtYWRjN2M4N2QxMzQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRkZDJlM2FiNzg0NzVhZWJlMzYzY2M0NTM1MDY1YjQzOGE3MzI5ZjVkM2U2YTc0OTY1NzRmZmI0N2IwMjBlNTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qbjNiYS9oF0dM3DhtPX8CzUvCrGsVFpQ7iXeSCP9su8)
![Ctrl_WBuf_NEARFAR_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335723-101e19bf-caf4-4c56-8c1f-31994add1ca9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MjMtMTAxZTE5YmYtY2FmNC00YzU2LThjMWYtMzE5OTRhZGQxY2E5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRhMjZkNTI1OTMzMWI3MGM0NzYwODc4MTAzMTcxZGY3NDU1NzU1YTQ0NGMwMmY0NDM2OGM4Y2E3ZmJlMDg0OTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.T_e4PUaltJECeSHBWbRuoknceZkUbe3-PA-23Y_aqtM)
![Ctrl_WBuf_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335724-645d4892-3969-4ec2-8912-8e5c5a142c1c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MjQtNjQ1ZDQ4OTItMzk2OS00ZWMyLTg5MTItOGU1YzVhMTQyYzFjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyYjczYzgyMmUzNzM0ODQzM2IzNTg0M2Y4YjFjNTIwMDUwNTE1YzY4NTNhMWY4MGM2NDBiODUzNmNkNzgwNWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XCir7kdkdFY2ButZmBdHP84hNHt2hoai7wy0jcoVMeg)
![Ctrl_WBuf_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335726-908bab0c-3ebd-4a0d-acb5-1f1903e54b29.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MjYtOTA4YmFiMGMtM2ViZC00YTBkLWFjYjUtMWYxOTAzZTU0YjI5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNiNDA4OWNkOTI2YmFmMGI1MGJlZTAzZTRjZmQ4ZDg4OGRmMGM5MTg3ZTk5NDExMzM5NDE5NWJiYWQ5ZDRlNTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cq9ijgrTeFJ7N1gsmGJtNlbXudyh02ASuCNRTlfeDPE)
![Ctrl_WBuf_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335727-aaf09b8e-b57a-497b-9fe1-8e0d466e9d44.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MjctYWFmMDliOGUtYjU3YS00OTdiLTlmZTEtOGUwZDQ2NmU5ZDQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ5NjI5ZmMzMThiOGMyZmE3NmQ2Y2MyNjdiZTdjN2U2YjgzY2QxMWViZmYwYTVjNjJiY2YzMmRhZTFkODkzMGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.yI5OyaDV4399fG8UV1RafzH4yui1Z72aI8c-74gu4uw)
![Ctrl_WBuf_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335730-e71cb68a-4d02-4145-b0d3-a680e4160e54.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MzAtZTcxY2I2OGEtNGQwMi00MTQ1LWIwZDMtYTY4MGU0MTYwZTU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNlYWQ2NTdhOTAyNTE5MWU3YjE0NjJkNmIxOWMzMDY5MmI1NmI1MmVhZDdkYjdmNDZhNmFhODJlNDk4MDYzMGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.kQ85fO2GL-LjbRTtGC4C8QMY7mcskCD6e4A8sblDd88)
![Ctrl_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335732-1980672a-af7e-47c0-acff-5cd4a6bbbb5f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MzItMTk4MDY3MmEtYWY3ZS00N2MwLWFjZmYtNWNkNGE2YmJiYjVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlNDg5ZWUyMDZhNzAwMzhmNDA2YjY1NjA1ZTU4NGVhNmY3MGMzNGNhNzUwYjRkNWMwZjAyYzNkYmI4ZjBkNTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.nda4wW2avgqvuRYcrhxwn4SnuriWPQXk_NJpmALeeWM)
![Ctrl_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335734-411ec280-9d3b-4ff3-bb1c-d18b9e2d4565.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MzQtNDExZWMyODAtOWQzYi00ZmYzLWJiMWMtZDE4YjllMmQ0NTY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ2Mzk3Yzc4MjliM2ZmMTg5NzM5MjkzZWEzMzllYmU2ZWZmYTQ1OTRlMGMwMTUwOWU5Y2IxMmNmYTQ5NzIwMmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.N88-AjZjWJXJLOdrPD-urq90JhjIO6SGg32TypVeFc4)
![Ctrl_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335736-ef073823-c8bc-45d9-b617-ef8d678d3ee4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MzYtZWYwNzM4MjMtYzhiYy00NWQ5LWI2MTctZWY4ZDY3OGQzZWU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRmNzk5MjkxYmYzYTFkNjRiODAxODQyOTNiYTQ3Nzg0ZjUyZDVhYjMyNzk2YWY5YTQwMTczODg4MjU2ZWVkNWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.h6rFIKLo7DzVbLa64sicsUhoIyMMHl0e6RVqUbuElkw)
![Ctrl_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335738-54f6d602-1e2d-46c1-8da6-fac81b132093.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3MzgtNTRmNmQ2MDItMWUyZC00NmMxLThkYTYtZmFjODFiMTMyMDkzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ5MGUyZTkxN2MzMjFmYmUxZjQ2ZDc1MDQwYWM3YThhODI2ZGU1YjNhMzE5NjgwYTk4MjJhZmE0NDU3Y2M4YjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sXAAxXwKo6GKA1zN39triGwwtzSLVhqVcX-KUfBfhUk)
![CtrlFixed_NEARFAR_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335741-c33d5854-1f8c-4fae-ac20-fd5d399dfdc3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NDEtYzMzZDU4NTQtMWY4Yy00ZmFlLWFjMjAtZmQ1ZDM5OWRmZGMzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTllYzQ3MDZkMzRjMzVmNTQwMzkxMTMwYmI2M2RiNTZhNjgyYTcxNTgyMzM0NDkxODIwYjhkMWY0NjYxYjFmMTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.c768FWGpjY0p69NwsemS4WYtmwLkkN1qCntyQaPpLqw)
![CtrlFixed_NEARFAR_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335743-fd137779-0dda-4b1d-a7b3-38e4c50950f5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NDMtZmQxMzc3NzktMGRkYS00YjFkLWE3YjMtMzhlNGM1MDk1MGY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNkYTU4ZmNlYmIwY2MyYTY4Njk2YWRhZDk3ZjlhN2FmZTY4Yzk4MzQyOWMwY2ZmZTExYzM3MTViZjJjNjAxNjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Jwu4iZUsiWNBbI5x9JVQH66hwcvua29YtqwWZpiTAdg)
![CtrlFixed_NEARFAR_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335744-5a1c32f4-e320-46bd-8347-0bf0e9566844.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NDQtNWExYzMyZjQtZTMyMC00NmJkLTgzNDctMGJmMGU5NTY2ODQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNlMjA0Y2E3MjRjZjA4ZjRjYTM3ZGE1YWMwNjQ1MzQwYWI0NTc3MTRjMGJiNjJiNWQwZGFkZjUwOWU5ZTZhMDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RioYfuqWRbjU0lfOQoF3ThY_TNoWn2QGpIpyIoJuA0I)
![CtrlFixed_NEARFAR_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335745-b96d2081-8162-4cad-90f8-9781b892c33b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NDUtYjk2ZDIwODEtODE2Mi00Y2FkLTkwZjgtOTc4MWI4OTJjMzNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFkNzdmMjIwMTdkZjg4MDM3MTM4NjdlMDVkMzZlNjkzZTU1MjdiMGVkMzAzZTU5NTAyNTNiMjg3OTQ2YTUwNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uVxKHds1Yu0sKCewAAZ_qyaVYjk6Vy7LGoJ_cNmK-hc)
![CtrlFixed_WBuf_NEARFAR_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335747-2f3c58c5-223c-41bf-8bc3-7c4557efc32c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NDctMmYzYzU4YzUtMjIzYy00MWJmLThiYzMtN2M0NTU3ZWZjMzJjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZiNmVhMjVjZGExYWVjMzRjOTYxZjg5MjY0NGZhYjk2NDBkMjYxMDk1ZTBmODlhMzBiOWRhYWM4OWNhZjBjNTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Vs1qLtN6wApV62n1B5gHUU20H-xmIj7Osy3vcbSvcwc)
![CtrlFixed_WBuf_NEARFAR_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335749-cdaeed84-5306-4e5e-b8e2-045967496e6e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NDktY2RhZWVkODQtNTMwNi00ZTVlLWI4ZTItMDQ1OTY3NDk2ZTZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2YTg3NWQ2NzM1ZDRkM2FhODZkMzBjMGZhNjE4ZTQwOTZiYjk2YzcxMWFkM2U5YzI4M2M0NzBhNzZhM2IyNTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.VquQNo9qotrAJ4pmZcVVkU3_iOnEfNAPnx9K6bjL6R8)
![CtrlFixed_WBuf_NEARFAR_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335750-5069296a-7c71-4960-8d8e-7f7f15d1d1ce.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NTAtNTA2OTI5NmEtN2M3MS00OTYwLThkOGUtN2Y3ZjE1ZDFkMWNlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIwZTY4MTdkZjRjNWJmMTdkNDhlOWM3NDEwODNiODVlMDdjYzZmZjNiODQ4ZDRmOTg5YjcwNzMyMmM1NGJkM2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1xz0yDV30YUvuWmFpThPXJ8yEqYGCbpkO0r8h7Vu8P8)
![CtrlFixed_WBuf_NEARFAR_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335753-c579c3f1-9ade-418a-ae33-ff3ef159a670.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NTMtYzU3OWMzZjEtOWFkZS00MThhLWFlMzMtZmYzZWYxNTlhNjcwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBmM2I1NWIxN2UwZTFmMWExMDk3YzNjMWE5ZGExNmVhNjM5ZDcwZmJkNzFmMTQwM2E2ZWNjMjFhZDQzMDYwOWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.dZRWR2oW7u9p6pSZ9bldK3U0MTU2DzjnnDm0gCnenzI)
![CtrlFixed_WBuf_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335754-72eed7b5-19b2-46d0-a8f8-1ca606e7bd73.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NTQtNzJlZWQ3YjUtMTliMi00NmQwLWE4ZjgtMWNhNjA2ZTdiZDczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJmZDJmNWQ4OTZiYjBhM2ZhMDE1MWJjZmJhMjM0MWFhODA4N2UwM2FkYzdhZGU3MDc3Njc2NWM5MzYxMTFlNjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0lVb0uDj4v9TJSU-6uBEv3XLDF8uKo6LgLfQM8zaJ8w)
![CtrlFixed_WBuf_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335759-80dacd8b-7ce4-482f-b098-fff26ca8bf66.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NTktODBkYWNkOGItN2NlNC00ODJmLWIwOTgtZmZmMjZjYThiZjY2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY2MDAwN2FmODljYmM4YTllNTM5OGJkMTk5ZDU2MjUwZmFmNDlhMmRhMzgzNjQ5YTc4ZGVlYzVkZWI3ZmI2NDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.wdWJNIB6HDJPP_jGLD9F4hY9SL4EXjocvwsuf2fV6Ls)
![CtrlFixed_WBuf_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335761-d9bdc94f-1c24-48e5-8c1a-be790d1ef995.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NjEtZDliZGM5NGYtMWMyNC00OGU1LThjMWEtYmU3OTBkMWVmOTk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU0MGZiYjI1MWYyMTlkYzY1Y2M3YTdjNmVkZTc3MDdiMjg4N2VlNzU4YzM3ZTBiNTExNDFhN2ExYjUyNmE4OTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._aeuFeHIRKz3G2u2GhjhyQnPDG1Jc_0c-xtSkwumTVw)
![CtrlFixed_WBuf_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335762-dc1da79c-9df6-438b-9201-ea48fae037c2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NjItZGMxZGE3OWMtOWRmNi00MzhiLTkyMDEtZWE0OGZhZTAzN2MyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZiMTNkZDgyMDlkYmE5MWY1ZTc1ZGQ5NDU4NTU3ZDU5ZjcxMzI0NGM0M2Y1YWJiMzk2MmJhMTRlNGQ3NzQ5Y2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YmmMx1l8uIhD6VvEW89jyIg2yDB_aoFkp5Td2-wMrKE)
![CtrlFixed_ZCLAMP](https://private-user-images.githubusercontent.com/30195994/408335765-ee55d442-e975-4275-960c-40f419f49625.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NjUtZWU1NWQ0NDItZTk3NS00Mjc1LTk2MGMtNDBmNDE5ZjQ5NjI1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkYjFhZTY1YjgzMzBiM2FjNmY1ZDk5MzJlMDVlZDI0NjcyMGQwMTM3OTNmNDdlMzhkNzI0ZWQ4OTUwMTQzZmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.GbD8kCnnejTMZiaQz_3F4K_UUbdi_o4VYWn7cQycPtA)
![CtrlFixed_ZCLAMP_IgnW](https://private-user-images.githubusercontent.com/30195994/408335767-e302a4d2-dbf9-45d7-a1b8-30e00bb11517.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NjctZTMwMmE0ZDItZGJmOS00NWQ3LWExYjgtMzBlMDBiYjExNTE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIzNWVjM2NkMjM0MDk4YmQyZjgwYmU5N2MyZjA5M2NkYjg2YWRmMTE1YzM2ZjAxYmM5NGYzNGRkZmI4ZTEyM2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QaM1nygIkZ0vSQg_NrvLBYliHgV5kdjzu0s_FB_xc3s)
![CtrlFixed_ZCULL](https://private-user-images.githubusercontent.com/30195994/408335769-22359198-147f-4421-a2a7-1a5ee250b797.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NjktMjIzNTkxOTgtMTQ3Zi00NDIxLWEyYTctMWE1ZWUyNTBiNzk3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgyMGM5OGIyMDAwNzA3NTUxNWJkNTlhYmQxZGMzMzQwNDk5YmJkMDI5MjlhY2ZiNWE4YmUxNjQ3M2UzMjUyNWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.VgudZX4B6f98Jsdz2eNW3oITXrzwRA6NUuhfiqPJOZw)
![CtrlFixed_ZCULL_IgnW](https://private-user-images.githubusercontent.com/30195994/408335772-65209635-e222-49c1-a287-2d506fa371a1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4OTc5NTksIm5iZiI6MTczODg5NzY1OSwicGF0aCI6Ii8zMDE5NTk5NC80MDgzMzU3NzItNjUyMDk2MzUtZTIyMi00OWMxLWEyODctMmQ1MDZmYTM3MWExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAzMDczOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlNjVjOWM3NGJiYTljMTU4ZGE5NDA1NTJmNDIyYjE1MjE1ZmE1MGM4MjQ3N2JiMTEzNTkxZDhiOWU2YmUxZWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MNNJZr9KRX1JQG6o1CJOoKsODqfmImPBVLxi3uv42W0)
https://github.com/abaire/nxdk_pgraph_tests_golden_results/tree/main/ZMinMaxControl
PR
Comments: clipping planes match HW behavior at 1x but are a bit off at higher scales (most likely unrelated). Near/far custom clipping planes are incorrect; they're hardcoded to test behavior and to approach HW results.
OGL shows erratic behavior when running fixed function tests specifically, as shown here(fixed in the latest commit)I'm leaving it here. "NEARFAR" feature is implemented but not fixed, left some comments in the code. I'll fix it in another PR if I find a solution, or let someone else beat me to it