Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Datoviz demo showing pure white screen #52

Open
quothbonney opened this issue May 19, 2023 · 10 comments
Open

Datoviz demo showing pure white screen #52

quothbonney opened this issue May 19, 2023 · 10 comments

Comments

@quothbonney
Copy link

OS: Linux Mint (Using BSP WM if it matters)
Error message: None
GPU Info:

04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 1638 (rev c4) (prog-if 00 [VGA controller])
	Subsystem: Razer USA Ltd. Device 2014
	Flags: bus master, fast devsel, latency 0, IRQ 58
	Memory at fc10000000 (64-bit, prefetchable) [size=256M]
	Memory at fc20000000 (64-bit, prefetchable) [size=2M]
	I/O ports at e000 [size=256]
	Memory at fc500000 (32-bit, non-prefetchable) [size=512K]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

I'm very interested in using the Datoviz library in an upcoming project. However I am encountering a problem: the render window is showing purely white other than ImGUI windows. I loaded the datoviz library in a pipenv virtual enviornment, and reinstalled GLFW with pipenv install glfw, but the issue persists. The issue is persisting no matter what datoviz code I attempt to run. I have tried both the demo and various examples. There is no error message or information being provided. A screenshot is below; any help would be very greatly appreciated

Output of datoviz.demo()
Screenshot from 2023-05-19 12-01-13

@rossant
Copy link
Contributor

rossant commented May 19, 2023

I'd be curious to know whether the same issue arises if you build Datoviz from source and try using it from C directly by following steps 1 to 10 here (i.e. up to ./manage.sh demo scatter )

What is your hardware specification?

@quothbonney
Copy link
Author

I'll try building it from source right now. This is a stupid question, but what exactly do you mean by hardware specification?

@rossant
Copy link
Contributor

rossant commented May 19, 2023

I mean what PC is this, a laptop, a desktop? Which hardware configuration and in particular which GPU?

@rossant
Copy link
Contributor

rossant commented May 19, 2023

Something else that could help: install vulkaninfo and post the output here (see https://linuxconfig.org/install-and-test-vulkan-on-linux)

@quothbonney
Copy link
Author

Oh, my bad. I'm on a laptop, using an AMD Ryzen GPU. Currently trying to install the Vulkan SDK to build from source.

@phstrauss
Copy link

phstrauss commented Dec 20, 2023

Got the same problem here, on an AMD Ryzen KUbuntu 23.10 laptop using vulkan-sdk :

(.pylocal) catseye@pulse-g2:/data/src/viz/datoviz/build$ dpkg -l | grep vulkan
ii  libvulkan-dev:amd64                                      1.3.268.0~rc1-1lunarg22.04-1                amd64        This package contains the Vulkan loader
ii  libvulkan1:amd64                                         1.3.268.0~rc1-1lunarg22.04-1                amd64        This package contains the Vulkan loader
ii  lunarg-vulkan-layers                                     1.3.268.0~rc1-1lunarg22.04-1                amd64        Extra Vulkan development layers from LunarG
ii  mesa-vulkan-drivers:amd64                                23.2.1-1ubuntu3.1                           amd64        Mesa Vulkan graphics drivers
ii  vulkan-extensionlayer                                    1.3.268.0~rc1-1lunarg22.04-1                amd64        Layers providing Vulkan features when native support is unavailable
ii  vulkan-headers                                           1.3.268.0~rc1-1lunarg22.04-1                all          Vulkan header files and API registry
ii  vulkan-profiles                                          1.3.268.0~rc1-1lunarg22.04-1                amd64        Collection of tools to leverage Vulkan Profiles
ii  vulkan-sdk                                               1.3.268.0~rc1-1lunarg22.04-1                all          Tools and runtime for Vulkan development.The Vulkan
ii  vulkan-tools                                             1.3.268.0~rc2-1lunarg22.04-1                amd64        This project provides Vulkan tools and utilities that can
ii  vulkan-utility-libraries                                 1.3.268.0~rc1-1lunarg22.04-1                amd64        Utility Libraries for various
ii  vulkan-utility-libraries-dev                             1.3.268.0~rc1-1lunarg22.04-1                amd64        Utility Libraries for various
ii  vulkan-validationlayers                                  1.3.268.0~rc2-1lunarg22.04-1                amd64        Vulkan is an Explicit API, enabling direct control over how GPUs actually
ii  vulkancapsviewer                                         3.32~rc1-1lunarg22.04-1                     amd64        Client application to display

it used to work albeit with a datoviz crash once in a while with a previous non-KDE ubuntu and vulkan-sdk binary tarball 1.3.224.

lspci -v:

05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Lucienne (rev c1) (prog-if 00 [VGA controller])
        Subsystem: Tongfang Hongkong Limited Lucienne
        Flags: bus master, fast devsel, latency 0, IRQ 46, IOMMU group 13
        Memory at d0000000 (64-bit, prefetchable) [size=256M]
        Memory at e0000000 (64-bit, prefetchable) [size=2M]
        I/O ports at e000 [size=256]
        Memory at fcc00000 (32-bit, non-prefetchable) [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

(.pylocal) catseye@pulse-g2:/data/src/viz/datoviz/build$ vulkaninfo > vulkaninfo.txt
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0.  Skipping ICD.

vulkaninfo.txt

datoviz is compiled from source using ./manage build

(.pylocal) catseye@pulse-g2:/data/src/viz/datoviz$ ./manage.sh demo scatter
13:20:29.004 I             main.c:0051: running scatter plot demo with 50000 points
13:20:29.262 W     vklite_utils.h:0280: validation layer: terminator_CreateInstance: Failed to CreateInstance in ICD 0.  Skipping ICD.
13:20:29.400 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-TransitionUndefinedToReadOnly ] | MessageID = 0x9f63e654 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] VkImageMemoryBarrier is being submitted with oldLayout VK_IMAGE_LAYOUT_UNDEFINED and the contents may be discarded, but the newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, which is read only.
13:20:29.400 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-ImageBarrierAccessLayout ] | MessageID = 0x849fcec7 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] image is VkImage 0x9fde6b0000000014[] and accessMask is VK_ACCESS_2_TRANSFER_READ_BIT, but for layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL expected accessMask are VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_READ_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_SAMPLED_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_READ_BIT|VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR.
13:20:29.404 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-ImageBarrierAccessLayout ] | MessageID = 0x849fcec7 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] image is VkImage 0x9fde6b0000000014[] and accessMask is VK_ACCESS_2_MEMORY_READ_BIT, but for layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL expected accessMask are VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_READ_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_SAMPLED_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_READ_BIT|VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR.
13:20:29.408 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-TransitionUndefinedToReadOnly ] | MessageID = 0x9f63e654 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] VkImageMemoryBarrier is being submitted with oldLayout VK_IMAGE_LAYOUT_UNDEFINED and the contents may be discarded, but the newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, which is read only.
13:20:29.408 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-ImageBarrierAccessLayout ] | MessageID = 0x849fcec7 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] image is VkImage 0x95a125000000001a[] and accessMask is VK_ACCESS_2_TRANSFER_READ_BIT, but for layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL expected accessMask are VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_READ_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_SAMPLED_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_READ_BIT|VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR.
13:20:29.409 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-ImageBarrierAccessLayout ] | MessageID = 0x849fcec7 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] image is VkImage 0x95a125000000001a[] and accessMask is VK_ACCESS_2_MEMORY_READ_BIT, but for layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL expected accessMask are VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_READ_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_SAMPLED_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_READ_BIT|VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR.
13:20:29.424 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-TransitionUndefinedToReadOnly ] | MessageID = 0x9f63e654 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] VkImageMemoryBarrier is being submitted with oldLayout VK_IMAGE_LAYOUT_UNDEFINED and the contents may be discarded, but the newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, which is read only.
13:20:29.424 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-ImageBarrierAccessLayout ] | MessageID = 0x849fcec7 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] image is VkImage 0xab64de0000000020[] and accessMask is VK_ACCESS_2_TRANSFER_READ_BIT, but for layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL expected accessMask are VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_READ_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_SAMPLED_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_READ_BIT|VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR.
13:20:29.426 W     vklite_utils.h:0280: validation layer: Validation Warning: [ UNASSIGNED-BestPractices-ImageBarrierAccessLayout ] | MessageID = 0x849fcec7 | vkCmdPipelineBarrier(): pImageMemoryBarriers[0] image is VkImage 0xab64de0000000020[] and accessMask is VK_ACCESS_2_MEMORY_READ_BIT, but for layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL expected accessMask are VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_READ_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_SAMPLED_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_READ_BIT|VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR.

shows a white window.

vkcube and vkgears works fine.

@phstrauss
Copy link

N.B.: ./manage demo gui works fine.

@phstrauss
Copy link

The attached log file is the result of running ./manage.sh test > test-log.txt 2>&1
This laptop (not a VM like the author of this issue) seems to have a very low cost GPU.

test-log.txt

@phstrauss
Copy link

Since I see two GPU on this laptop, the hardware integrated Ryzen one and the mesa llvmpipe, I've tried to force the use of the hardware one by changing line 16 of demo.c to :
DvzGpu* gpu = dvz_gpu(app, 0);
with no luck.
Oops the authors of this issue is not on a VM, my bad, and otherwise most of the tests displaying something simple to the screen works fine, it's only the scatter and mandelbrot demo showing a blank screen. The email I use for reading the notifications is now read, was at fault before.

@phstrauss
Copy link

Building mesa git from source and lunarg vulkan loader does not fix the issue for the scatter demo but I would need a switch to pass to the tests to select a GPU different than what is selected by dvz_gpu_best() cause now I've 4 GPUs, mesa ubuntu, mesa git, plus its llvmpipe each time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants