Giter Club home page Giter Club logo

Comments (7)

hanatos avatar hanatos commented on June 2, 2024

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.

leuc avatar leuc commented on June 2, 2024

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.

leuc avatar leuc commented on June 2, 2024

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)

image

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(!).

image

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.

image

from vkdt.

hanatos avatar hanatos commented on June 2, 2024

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.

leuc avatar leuc commented on June 2, 2024

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.

hanatos avatar hanatos commented on June 2, 2024

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.

leuc avatar leuc commented on June 2, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.