Comments (11)
I am currently working on resolving this issue (see the 2 branch). My plan is:
- return non swapchain images to the game
- use a graphic pipeline instead of a compute pipeline
- use the image that the game writes to as sampled image in the fragment shader
- output to the real swapchain image and present it
I still do not know if that solves the sRGB issue though.
from vkbasalt.
@sigexp An issue with your approach is, that no driver I know of supports sRGB storage images.
from vkbasalt.
I still do not know if that solves the sRGB issue though.
It does, since both images will have sRGB conversion either enabled or enabled. I agree that this is probably the best solution, even if it doesn't allow for the same degree of optimization that you could in theory and with quite a bit of extra work achieve with a compute shader, but the sharpening only has a marginal impact on the overall frame time anyway.
that no driver I know of supports sRGB storage images.
That's why it would have to be implemented manually in a compute shader, but that would make it unnecessarily complicated.
from vkbasalt.
That's why it would have to be implemented manually in a compute shader, but that would make it unnecessarily complicated.
What type of image would even be written to? As I am understanding it, creating a storage image would be undefined behavior and currently it is just "luck" that there is just no conversion. But could not everything from a crash to just a darker image happen?
from vkbasalt.
You can create a non-sRGB view for an sRGB image, in which case no conversion occurs.
from vkbasalt.
You can create a non-sRGB view for an sRGB image, in which case no conversion occurs.
And that is defined behavior? Cool I did not know that.
from vkbasalt.
Ok, my approach kinda works now on NVIDIA, I just need to stop the game from changing the image layout to present on the non swapchain images to get it working on AMD.
from vkbasalt.
Just do a PRESENT_SRC_KHR
-> SHADER_READ_ONLY_OPTIMAL
layout transition before beginning the render pass.
from vkbasalt.
Well that would be the easy way, but I think the spec does technically not allow Image layout transitions to present on non swapchain images. But simply replacing PRESENT_SRC_KHR
with SHADER_READ_ONLY_OPTIMAL
in pipeline barriers and the renderPass creation should be allowed, shouldn't it? Oh and I just wanted to ask if it is okay that I ask you stuff about this project all the time.
from vkbasalt.
But simply replacing PRESENT_SRC_KHR with SHADER_READ_ONLY_OPTIMAL in pipeline barriers and the renderPass creation should be allowed, shouldn't it?
Yes, it is.
Well that would be the easy way, but I think the spec does technically not allow Image layout transitions to present on non swapchain images.
This should be allowed (you can always enable validation layers though to check whether they yell at you). The spec states that the only operation allowed while the image is in PRESENT_SRC_KHR
layout is presentation, but this does not disallow subsequent layout transitions, and it does not explicitly state that only swap chain images may be transitioned to this layout.
from vkbasalt.
I have finished the rewrite, it seems to work on AMD #30 and solves the sRGB issue #18.
from vkbasalt.
Related Issues (20)
- vkBasalt doesn't compile (ninja: build stopped: subcommand failed.)
- vkBasalt.conf using a path without a username does not work HOT 2
- Assassin's Creed Origins freezes on launch with vkBasalt enabled
- vkbasalt won't install on manjaro through AUR in package manager. HOT 2
- 32bit vkbasalt build error on step 57 HOT 1
- API to indicate global state of effects
- Reshade update?
- CRT-Royale support HOT 8
- FakeHDR Reshade fails HOT 1
- Document the Deband shader
- Graphical artifacts when using more than 2 effects
- Combining AA methods. HOT 1
- Suggestion-Info more than "issue"
- feature req: per-app config file support HOT 2
- Is required the path /home/username/.local/share/reshade/.git/ for work correctly ? HOT 1
- vkbasalt require ReplaySorcery ? HOT 1
- [GNU/Linux + Wayland] vkBasalt causes Wayland compositors stall when fullscreen windows are closed with ALT+F4 HOT 3
- [TIP] custom .fx file per game
- Web Browser Support? HOT 4
- Hold to toggle
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vkbasalt.