Comments (3)
validation layer: VK_ERROR_FEATURE_NOT_PRESENT: vkCreateDevice(): Requested physical device feature specified by the 9th flag in VkPhysicalDeviceFeatures is not available on this device.
deviceFeatures.logicOp = VK_TRUE; // <- 9th member on struct
I notice vkvg uses this. what does this break? how do you implement an alternate technique for what breaks?
This is a m2 mac mini pro
vkvg use it for the clear operator.
Looks like we would need to handle the blending ops for clip inside of fragment otherwise? This is just my best guess at the moment. Not quite sure if I can get it working without this. For each feature, I'm enabling based on device feature support and storing it for using alternate routines at runtime.
Would a fragment shader approach be much slower for the blending ops? We could support more devices.
The problem with in shader blending operations is that you need the current fragment color to compute resulting color. Vulkan introduced a new extension that gives to the hardware the opportunity to implement a fast path to do so. You may test it. I don't have the name of the extension in mind, I should look onto my work laptop, but I have a very strict non disclosure contract, so I hope you'll find that by yourself...There are older extensions in gl, maybe availaible to vulkan that allow reading the current fragment value, but they are known to be slow...
Vulkan logic_op with extended operations would allows to cover the full classic 2d compositing operations. I'm not hurry on that point hoping drivers will one day support the full range of operators with the best hardware side optimizations....
VK_CHECK_RESULT(vkCreateGraphicsPipelines(dev->vkDev, dev->pipelineCache, 1, &pipelineCreateInfo, NULL, &dev->pipelinePolyFill)); // <-- i think it would be best to convert the topology rather than avoid painting the polygons lol.
When I get this working would you like a patch for Apple use-case? Appreciate it!
I think the logic Ops will be far more difficult for me to patch up with performance in mind on this hardware. But I really want to get it working. Topology conversion is nothing. On Apple hardware, basically 70-80% of it we are looking at no primitives for fans which is annoying but not hard to patch. The logic ops used in drawing system is the elephant in the room I think. Probably will use a different shader for that approach. At the same time I will attempt to render circles faster than skia.
Having no support for Fan for apple, I've disabled the pipeline creation, but yes, that's half the solution. The best quick solution is to emit triangle indices in the existing but not binded Index buffer of the context and draw triangle list with the same vertex buffer. You may provide the patch, I'll be happy to merge it.
Thank you for your report.
from vkvg.
Looks like we would need to handle the blending ops for clip inside of fragment otherwise? This is just my best guess at the moment. Not quite sure if I can get it working without this. For each feature, I'm enabling based on device feature support and storing it for using alternate routines at runtime.
Would a fragment shader approach be much slower for the blending ops? We could support more devices.
from vkvg.
VK_CHECK_RESULT(vkCreateGraphicsPipelines(dev->vkDev, dev->pipelineCache, 1, &pipelineCreateInfo, NULL, &dev->pipelinePolyFill)); // <-- i think it would be best to convert the topology rather than avoid painting the polygons lol.
When I get this working would you like a patch for Apple use-case? Appreciate it!
I think the logic Ops will be far more difficult for me to patch up with performance in mind on this hardware. But I really want to get it working. Topology conversion is nothing. On Apple hardware, basically 70-80% of it we are looking at no primitives for fans which is annoying but not hard to patch. The logic ops used in drawing system is the elephant in the room I think. Probably will use a different shader for that approach. At the same time I will attempt to render circles faster than skia.
from vkvg.
Related Issues (20)
- gradient alpha channel ignored HOT 2
- Segfaults in surface test HOT 1
- Build deb for Debian / Ubuntu HOT 2
- Premult Alpha handling for image load/write
- Special objects with VKVG_STATUS_NO_MEMORY instead of NULL pointer.
- TimeLine semaphore HOT 2
- Issue with getting glyphs info HOT 26
- Implementing Unit Testing with Meson
- Tests crash and other related bugs and Validation errors: HOT 11
- Having trouble using vkh.h HOT 1
- M_PI undeclared HOT 2
- tests/bezier screen not clear on each frame HOT 3
- Cannot build tests on linux with static GLFW HOT 3
- Multi-window support? HOT 3
- crash when i use multithreaded to draw text HOT 5
- i want to remove the font lock HOT 1
- Vulkan validator prints error on fragment compilation (vkCreateShaderModule) HOT 8
- Failed to build on MSYS2 MINGW64 HOT 3
- vkvg api to query vulkan context creation requirements
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 vkvg.