Comments (8)
#if defined(VKVG_LCD_FONT_FILTER) && defined(FT_CONFIG_OPTION_SUBPIXEL_RENDERING)
createInfo.pCode = (uint32_t*)vkvg_main_lcd_frag_spv;
createInfo.codeSize = vkvg_main_lcd_frag_spv_len;
#else
createInfo.pCode = (uint32_t*)vkvg_main_frag_spv; /// <- this specific one is being used
createInfo.codeSize = vkvg_main_frag_spv_len;
#endif
> git branch
* (HEAD detached at 84cf72d)
I am remembering some changes being made to this file that I may not have pulled in yet
from vkvg.
I pulled in those changes and still seem to get the error. I did rebuild but I'll update my json to pull in the master so all changes are applied since that spv change.
from vkvg.
A change I had to make in order to get this going this far was an upgrade to VMA version as I use it already in a specific version that is greater than the one used in VkVG. So, I had to pass the instance in vkvg_device.c as well as vh_device.c:
#ifdef VKH_USE_VMA
VmaAllocatorCreateInfo allocatorInfo = {
.physicalDevice = phy,
.device = vkDev,
.instance = inst /// passing this as well in vkvg_device.c for use with the later version of VMA
};
vmaCreateAllocator(&allocatorInfo, &dev->allocator);
In the ion.git repo there is a project.json which pulls in externals and lets you compile them how you want. The CMake reads the JSON expanded from a python script. So you've got a fields format such as:
{
"name": "vma",
"version": "3.0.1",
"url": "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator",
"commit": "a6bfc23",
"includes": ["./include"],
"libs": ["./ion-build"],
"install": true
},
{
"name": "glm",
"version": "0.9.9.8",
"commit": "bf71a83",
"url": "https://github.com/g-truc/glm",
"includes": ["./"],
"libs": ["./ion-build"]
},
{
"name": "glfw",
"version": "3.3.8",
"commit": "7482de6",
"url": "https://github.com/glfw/glfw",
"includes": ["./include"],
"libs": ["./ion-build/src"]
},
{
"name": "vkvg",
"version": "0.2.2",
"commit": "0a181e01c758691d981c6d5ed2b17c1d7e95c284",
"url": "https://github.com/jpbruyere/vkvg.git",
"includes": ["./include","./vkh/include"],
"libs": ["./ion-build","./ion-build/vkh","./ion-build/external/glutess"],
"cmake": {"args": ["-DVKVG_USE_GLUTESS=True","-DVKVG_BUILD_SHARED_LIB=Off","-DVKVG_USE_FONTCONFIG=Off","-DVKVG_USE_HARFBUZZ=On"]},
"install": true
},
{
"name": "mbedtls",
"version": "3.4.0",
"commit": "1873d3b",
"url": "https://github.com/Mbed-TLS/mbedtls",
"includes": ["./include"],
"libs": ["./ion-build/library"]
}
I had it not installing the libs but found that to make it do so. So the format need not require the 'libs' and 'includes' ultimately. I cant do it now because work is required to 'finish' install scripts like glm's which doesnt seem to have one.
from vkvg.
Undefining VKVG_ENABLE_VK_SCALAR_BLOCK_LAYOUT lets it pass the validator as it doesnt use that method in the main fragment. I am onto another issue now.
vkvg_device_internal.c @ ~358: (last vkCreateGraphicsPipelines call in function: _device_setupPipelines)
code executed:
VK_CHECK_RESULT(vkCreateGraphicsPipelines(
dev->vkDev, dev->pipelineCache, 1,
&pipelineCreateInfo, NULL, &dev->pipe_CLEAR));
validation error:
Validation Error: [ VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606 ]
Object 0: handle = 0x5555572889a0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x234f6296 |
vkCreateGraphicsPipelines() pCreateInfo[0]: If logic operations feature not enabled,
logicOpEnable must be VK_FALSE. The Vulkan spec states: If the logicOp feature is
not enabled, logicOpEnable must be VK_FALSE
(https://vulkan.lunarg.com/doc/view/1.3.250.0/linux/1.3-extensions/vkspec.html#VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606)
from vkvg.
The above was due to my mistake at Vulkan Device creation. I needed to add the following. 'aa' is unlikely to ever be false as I assume that would break vkvg's pipeline requirements
VkPhysicalDeviceFeatures features {
.logicOp = VK_TRUE,
.samplerAnisotropy = aa ? VK_TRUE : VK_FALSE
};
from vkvg.
Important to note that VKVG_ENABLE_VK_SCALAR_BLOCK_LAYOUT should be OFF (not defined) for current version of vulkan validator not to error. Perhaps it could be default or we fix by padding the float[16]
from vkvg.
The above was due to my mistake at Vulkan Device creation. I needed to add the following. 'aa' is unlikely to ever be false as I assume that would break vkvg's pipeline requirements
VkPhysicalDeviceFeatures features { .logicOp = VK_TRUE, .samplerAnisotropy = aa ? VK_TRUE : VK_FALSE };
You should call 'vkvg_get_device_requirements' to populate the 'VkPhysicalDeviceFeatures' struct.
Important to note that VKVG_ENABLE_VK_SCALAR_BLOCK_LAYOUT should be OFF (not defined) for current version of vulkan validator not to error. Perhaps it could be default or we fix by padding the float[16]
What is you vulkan version? What is your platform, driver and gpu? SCALAR block layout could be unsupported by driver, vulkan side should be ok.
from vkvg.
I was reasonably certain that VkVG did this during its build process, though? At any rate I am having this error and am trying to get it going..
If 'glslc' and 'xxd' binaries are found by cmake, shaders should be compiled by the cmake build. I've stored in the git tree a default version of pre-compiled spir-v shaders, but macros are forwarded to glslc compile command depending on cmake options. So, if you use the pre-compiled shaders from the git tree, cmake options and spir-v macros may be out of sync.
We could maybe set the most secured options if cmake failed detecting glslc or xxd, and ensure pre-compiled shaders have the same options compiled.
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
- Failed to build on MSYS2 MINGW64 HOT 3
- logicOp not supported on MoltenVK / M2 Mini 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.