Comments (7)
heya, thanks for the detailed report.
not sure DRI_PRIME does anything, vulkan is pretty free at selecting the gpu. see vkdt -d qvk
for an output which one it's actually selecting (you can force it in ~/.config/vkdt/config.rc
).
these render artifacts look really strange. the thumbnails are written in bc1/block based, maybe that's what we're seeing here? but you mentioned it happens when editing for real too. so maybe it's more an amd specific way of storing images? i'm guessing randomly here. did you build from source? maybe your driver has instructive validation layer output if you
make clean
make debug -j20
vkdt -d qvk
(i.e. compile with validation layer/debug support and run with vk output enabled)
from vkdt.
OK, it gets a little more reproducible. Before each run i rm -rv ~/.cache/vkdt
setting the card to 0 via config.rc
i get sluggish, almost unresponsive performance and vkdt is at 90% cpu load.
However, the thumbnails are rendered correctly, just very slowly.
[gui] glfwGetVersionString() : 3.3.6 X11 GLX EGL OSMesa clock_gettime evdev shared
[gui] monitor [0] eDP at 0 0
[gui] vk extension required by GLFW:
[gui] VK_KHR_surface
[gui] VK_KHR_xcb_surface
[qvk] dev 0: vendorid 0x1002
[qvk] dev 0: AMD RADV RENOIR
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] selecting device 0 by explicit request
[qvk] dev 1: vendorid 0x10005
[qvk] dev 1: llvmpipe (LLVM 13.0.1, 256 bits)
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 65536
[qvk] device 1 does not support requested feature shaderSampledImageArrayDynamicIndexing, trying anyways
[qvk] device 1 does not support requested feature shaderStorageImageArrayDynamicIndexing, trying anyways
[qvk] device 1 does not support requested feature inheritedQueries, trying anyways
[qvk] dev 2: vendorid 0x1002
[qvk] dev 2: AMD RADV NAVI10
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] num queue families: 2
[qvk] picked device 0 without ray tracing and without float atomics support
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[gui] no joysticks found
[gui] no display profile file display.eDP, using sRGB!
[gui] no display profile file display.eDP, using sRGB!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
Setting the device to 2 i get great performance, but the thumbnails get cut-off and some images even have more glitches. I also notice "green" overall UI render glitches when moving around the light table.
When adjusting any sliders in develop mode the image does fully render without glitches.
[gui] glfwGetVersionString() : 3.3.6 X11 GLX EGL OSMesa clock_gettime evdev shared
[gui] monitor [0] eDP at 0 0
[gui] vk extension required by GLFW:
[gui] VK_KHR_surface
[gui] VK_KHR_xcb_surface
[qvk] dev 0: vendorid 0x1002
[qvk] dev 0: AMD RADV RENOIR
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] dev 1: vendorid 0x10005
[qvk] dev 1: llvmpipe (LLVM 13.0.1, 256 bits)
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 65536
[qvk] device 1 does not support requested feature shaderSampledImageArrayDynamicIndexing, trying anyways
[qvk] device 1 does not support requested feature shaderStorageImageArrayDynamicIndexing, trying anyways
[qvk] device 1 does not support requested feature inheritedQueries, trying anyways
[qvk] dev 2: vendorid 0x1002
[qvk] dev 2: AMD RADV NAVI10
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] selecting device 2 by explicit request
[qvk] num queue families: 2
[qvk] picked device 2 without ray tracing and without float atomics support
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[gui] no joysticks found
[gui] no display profile file display.eDP, using sRGB!
[gui] no display profile file display.eDP, using sRGB!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
Invalid SOS parameters for sequential JPEG
Invalid SOS parameters for sequential JPEG
RawSpeed:Compressor Version: CanonCR3_001/00.09.00/00.00.00
[ERR] kernel hilite_01_half:input is not connected!
[ERR] kernel hilite_01_doub:input is not connected!
[ERR] input hilite:input not connected!
[qvk] error VK_INCOMPLETE executing record_command_buffer(graph, graph->node+nodeid[i], run_all || (graph->node[nodeid[i]].module->flags & s_module_request_read_source))!
[ERR] kernel hilite_01_half:input is not connected!
[ERR] kernel hilite_01_doub:input is not connected!
[ERR] input hilite:input not connected!
[qvk] error VK_INCOMPLETE executing record_command_buffer(graph, graph->node+nodeid[i], run_all || (graph->node[nodeid[i]].module->flags & s_module_request_read_source))!
[ERR] kernel hilite_01_half:input is not connected!
[ERR] kernel hilite_01_doub:input is not connected!
[ERR] input hilite:input not connected!
[qvk] error VK_INCOMPLETE executing record_command_buffer(graph, graph->node+nodeid[i], run_all || (graph->node[nodeid[i]].module->flags & s_module_request_read_source))!
[ERR] kernel hilite_01_half:input is not connected!
[ERR] kernel hilite_01_doub:input is not connected!
[ERR] input hilite:input not connected!
[qvk] error VK_INCOMPLETE executing record_command_buffer(graph, graph->node+nodeid[i], run_all || (graph->node[nodeid[i]].module->flags & s_module_request_read_source))!
[ERR] kernel hilite_01_half:input is not connected!
[ERR] kernel hilite_01_doub:input is not connected!
[ERR] input hilite:input not connected!
[qvk] error VK_INCOMPLETE executing record_command_buffer(graph, graph->node+nodeid[i], run_all || (graph->node[nodeid[i]].module->flags & s_module_request_read_source))!
[ERR] kernel hilite_01_half:input is not connected!
[ERR] kernel hilite_01_doub:input is not connected!
[ERR] input hilite:input not connected!
[qvk] error VK_INCOMPLETE executing record_command_buffer(graph, graph->node+nodeid[i], run_all || (graph->node[nodeid[i]].module->flags & s_module_request_read_source))!
[ERR] kernel hilite_01_half:input is not connected!
[ERR] kernel hilite_01_doub:input is not connected!
[ERR] input hilite:input not connected!
[qvk] error VK_INCOMPLETE executing record_command_buffer(graph, graph->node+nodeid[i], run_all || (graph->node[nodeid[i]].module->flags & s_module_request_read_source))!
[qvk] error VK_SUBOPTIMAL_KHR executing vkAcquireNextImageKHR(qvk.device, qvk.swap_chain, 2ul<<30, image_acquired_semaphore, VK_NULL_HANDLE, &vkdt.frame_index)!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] error VK_SUBOPTIMAL_KHR executing vkAcquireNextImageKHR(qvk.device, qvk.swap_chain, 2ul<<30, image_acquired_semaphore, VK_NULL_HANDLE, &vkdt.frame_index)!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] error VK_SUBOPTIMAL_KHR executing vkAcquireNextImageKHR(qvk.device, qvk.swap_chain, 2ul<<30, image_acquired_semaphore, VK_NULL_HANDLE, &vkdt.frame_index)!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] error VK_SUBOPTIMAL_KHR executing vkAcquireNextImageKHR(qvk.device, qvk.swap_chain, 2ul<<30, image_acquired_semaphore, VK_NULL_HANDLE, &vkdt.frame_index)!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] error VK_SUBOPTIMAL_KHR executing vkAcquireNextImageKHR(qvk.device, qvk.swap_chain, 2ul<<30, image_acquired_semaphore, VK_NULL_HANDLE, &vkdt.frame_index)!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
(VK_INCOMPLETE seems to be triggered by some of my test images, probably a different issue. Only happens with the initial thumbnail generation)
Using the OBS ppa at the moment, but I'll try the debug build.
from vkdt.
OK, another odd but reproducible behavior that might narrow it down.
Initial state after opening a DNG in develop mode with cut-off image (and some histogram glitches)
I move the strength slider a little and the image renders correctly.
If i move the strength slider back to zero, the cut-off image glitch re-appears(!).
Touching any other sliders in favorites simply renders the full image, even when reset to default value.
Screenshot after changing some parameters but setting strength back to zero.
from vkdt.
hm with amd i'm always poking around in the dark because i don't have access to such a device to test. it seems this one would support floating point atomics (which is good) and i'm incorrectly classifying it as unsupported (pushed something, you can pull and test whether that changes anything at all if you want).
the half-rendered image looks more like a queue synchronisation issue though.
maybe the VK_SUBOPTIMAL_KHR is hinting at something? if you resize the window (i.e. recreate the swapchain) does it help?
from vkdt.
Resizing the main window doesn't remove the cut-off
the make debug
build fails to load vulkan
file bin/vkdt
bin/vkdt: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=57bf5662d752759f128deffaf7cb3101a107e738, for GNU/Linux 3.2.0, with debug_info, not stripped
./bin/vkdt -d qvk
[gui] glfwGetVersionString() : 3.3.6 X11 GLX EGL OSMesa clock_gettime evdev shared
[gui] monitor [0] eDP at 0 0
[gui] vk extension required by GLFW:
[gui] VK_KHR_surface
[gui] VK_KHR_xcb_surface
[qvk] error VK_ERROR_LAYER_NOT_PRESENT executing vkCreateInstance(&inst_create_info, NULL, &qvk.instance)!
[ERR] init vulkan failed
[ERR] failed to init gui/swapchain
the normal release build shows the same cut-off behavior at 12fa3f9
file bin/vkdt
bin/vkdt: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=49ff41b0fad85d51bf9e70319ed4625f9e020e60, for GNU/Linux 3.2.0, stripped
./bin/vkdt -d qvk
[gui] glfwGetVersionString() : 3.3.6 X11 GLX EGL OSMesa clock_gettime evdev shared
[gui] monitor [0] eDP at 0 0
[gui] vk extension required by GLFW:
[gui] VK_KHR_surface
[gui] VK_KHR_xcb_surface
[qvk] dev 0: vendorid 0x1002
[qvk] dev 0: AMD RADV RENOIR
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] dev 1: vendorid 0x10005
[qvk] dev 1: llvmpipe (LLVM 13.0.1, 256 bits)
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 65536
[qvk] device 1 does not support requested feature shaderSampledImageArrayDynamicIndexing, trying anyways
[qvk] device 1 does not support requested feature shaderStorageImageArrayDynamicIndexing, trying anyways
[qvk] device 1 does not support requested feature inheritedQueries, trying anyways
[qvk] dev 2: vendorid 0x1002
[qvk] dev 2: AMD RADV NAVI10
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] selecting device 2 by explicit request
[qvk] num queue families: 2
[qvk] picked device 2 without ray tracing and without float atomics support
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[gui] no joysticks found
[gui] no display profile file display.eDP, using sRGB!
[gui] no display profile file display.eDP, using sRGB!
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
./bin/vkdt --version
vkdt 0.5.0-23-g12fa3f98 (c) 2020--2023 johannes hanika
from the vulkaninfo for the device 2
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
shaderBufferFloat32Atomics = true
shaderBufferFloat32AtomicAdd = false
shaderBufferFloat64Atomics = true
shaderBufferFloat64AtomicAdd = false
shaderSharedFloat32Atomics = true
shaderSharedFloat32AtomicAdd = true
shaderSharedFloat64Atomics = true
shaderSharedFloat64AtomicAdd = false
shaderImageFloat32Atomics = true
shaderImageFloat32AtomicAdd = false
sparseImageFloat32Atomics = true
sparseImageFloat32AtomicAdd = false
from vkdt.
VK_ERROR_LAYER_NOT_PRESENT means you have to install the vulkan-validationlayers package (whatever it is called in your distro).
ah, shaderImageFloat32AtomicAdd is actually what i need, so it doesn't have atomics after all.
one of your images looked like the local contrast was applied to an incomplete/blocky image. also the histogram render has the blocks (and that's certainly not coming from an earlier module). that looks like a generic problem with barriers/image format conversion to me. might it be a driver issue?
from vkdt.
I installed vulkan with the amdgpu-pro stack and the cut-off artifacts do disappear.
amdgpu-install --vulkan=pro --no-dkms --accept-eula --no-32 --usecase=graphics
vulkaninfo reports the same set of VkPhysicalDeviceShaderAtomicFloatFeaturesEXT features.
Devices:
========
GPU0:
apiVersion = 4206824 (1.3.232)
driverVersion = 8388855 (0x8000f7)
vendorID = 0x1002
deviceID = 0x1636
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = Unknown AMD GPU
driverID = DRIVER_ID_AMD_PROPRIETARY
driverName = AMD proprietary driver
driverInfo = (AMD proprietary shader compiler)
conformanceVersion = 1.3.0.0
[..]
GPU1:
apiVersion = 4206824 (1.3.232)
driverVersion = 8388855 (0x8000f7)
vendorID = 0x1002
deviceID = 0x731f
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = AMD Radeon RX 5600M
driverID = DRIVER_ID_AMD_PROPRIETARY
driverName = AMD proprietary driver
driverInfo = (AMD proprietary shader compiler)
conformanceVersion = 1.3.0.0
[...]
I'll try some more driver combinations and maybe a mesa update.
Closing since nothing to fix on vkdt end.
from vkdt.
Related Issues (20)
- Provide desktop file so users can open vkdt without console HOT 3
- [FR] Node editor in a second screen HOT 9
- systematic issue HOT 6
- artifacts in every image (AMD GPU) HOT 21
- Attempt to create tag causes crash HOT 3
- default position of the nodes HOT 3
- node position HOT 6
- Feature: combined demosaicing and denoising HOT 1
- Feature: profiled lens correction HOT 1
- Feature: right click a slider to enter its value from the keyboard HOT 1
- Feature: right click a node connection line to remove it
- Feature: remember last opened directory when opening the application again HOT 1
- Feature: add new nodes to the center of the visible area of the graph HOT 1
- Feature: noise profiles from Darktable HOT 2
- Feature: universal image node for output
- Feature: universal color/bit depth conversition node
- Feature: align text labels of node outputs to right sides of the nodes for better visibility
- Feature: use GitHub Actions to automatically generate Windows and macOS binaries HOT 2
- modules and blocks HOT 13
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 vkdt.