Code Monkey home page Code Monkey logo

Comments (14)

QushyQushy avatar QushyQushy commented on August 22, 2024

Ok checking the error myself I tried launching the game wth OBS_VKCAPTURE_LINEAR=1. I initially thought it worked but performance is like 60-70% worse while recording in the benchmark and also only the area where Mangohud is shown is being captured for some reason.

Here is a screenshot:

Screenshot_20220416_205443

from obs-vkcapture.

nowrep avatar nowrep commented on August 22, 2024

Steam log (game log) isn't full, I'd like to see the output from initialization. Also you don't have to use debug build (there's too much log noise).

If you try to capture the game without mangohud, does it just show black screen?
Can you please try to capture vkcube as a simple test?

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

Yeah I will try vkcube. The performance issue seems to be specific to HZD. God of War which I just tried has like 15% performance loss which is normal I would guess.

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

VKCube seems to be working fine so I am sending the Proton Log and OBS log fo HZD instead. The Mangohud issue seems to havye been cause by the Allow Transparency option:

OBS Log:

Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/locale.ini
Attempted path: /usr/share/obs/obs-studio/locale.ini
Attempted path: share/obs/obs-studio/locale/el-GR.ini
Attempted path: /usr/share/obs/obs-studio/locale/el-GR.ini
info: Using preferred locale 'el-GR'
Attempted path: share/obs/obs-studio/themes/Dark.qss
Attempted path: /usr/share/obs/obs-studio/themes/Dark.qss
info: Using EGL/X11
info: CPU Name: AMD Ryzen 9 5900HX with Radeon Graphics
info: CPU Speed: 3645.394MHz
info: Physical Cores: 8, Logical Cores: 16
info: Physical Memory: 63784MB Total, 28758MB Free
info: Kernel Version: Linux 5.17.3-xm1.0.fc36.x86_64
info: Distribution: "Fedora Linux" 36
info: Session Type: x11
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.20.14
info: Qt Version: 5.15.3 (runtime), 5.15.3 (compiled)
info: Portable mode: false
Attempted path: share/obs/obs-studio/themes/Dark/no_sources.svg
Attempted path: /usr/share/obs/obs-studio/themes/Dark/no_sources.svg
QMetaObject::connectSlotsByName: No matching signal for on_tbar_position_valueChanged(int)
QMetaObject::connectSlotsByName: No matching signal for on_actionShowTransitionProperties_triggered()
QMetaObject::connectSlotsByName: No matching signal for on_actionHideTransitionProperties_triggered()
info: OBS 27.2.4 (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
        samples per sec: 48000
        speakers:        2
info: ---------------------------------
info: Initializing OpenGL...
info: Loading up OpenGL on adapter AMD AMD RENOIR (LLVM 13.0.1, DRM 3.44, 5.17.3-xm1.0.fc36.x86_64)
info: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 22.0.1, shading language 4.60
info: ---------------------------------
info: video settings reset:
        base resolution:   1920x1080
        output resolution: 1280x720
        downscale filter:  Bicubic
        fps:               30/1
        format:            NV12
        YUV mode:          709/Partial
info: NV12 texture support not available
info: Audio monitoring device:
        name: Προεπιλεγμένη
        id: default
info: ---------------------------------
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-ouput-ui.so'
info: [pipewire] Available captures:
info: [pipewire]     - Desktop capture
info: [pipewire]     - Window capture
libDeckLinkAPI.so: cannot open shared object file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
warning: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
info: No blackmagic support
warning: v4l2loopback not installed, virtual camera disabled
warning: Failed to load 'el-GR' text for module: 'linux-vkcapture.so'
info: [linux-vkcapture] plugin loaded successfully (version 1.1.3)
error: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: cannot open shared object file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος

info: FFMPEG VAAPI supported
error: os_dlopen(libvlc.so.5->libvlc.so.5): libvlc.so.5: cannot open shared object file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος

info: [vlc-video]: Couldn't find VLC installation, VLC video source disabled
info: ---------------------------------
info:   Loaded Modules:
info:     vlc-video.so
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-vst.so
info:     obs-transitions.so
info:     obs-outputs.so
info:     obs-libfdk.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     linux-vkcapture.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-jack.so
info:     linux-decklink.so
info:     linux-capture.so
info:     linux-alsa.so
info:     image-source.so
info:     frontend-tools.so
info:     decklink-ouput-ui.so
info:     decklink-captions.so
info: ---------------------------------
info: ==== Startup complete ===============================================
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.49) 15.0.0'
info: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_output.pci-0000_08_00.6.analog-stereo.monitor'
info: [Loaded global audio device]: 'Ήχος Επιφάνειας Εργασίας'
info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.49) 15.0.0'
info: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_input.pci-0000_08_00.6.analog-stereo'
info: [Loaded global audio device]: 'Μικρόφωνο/Aux'
info: Switched to scene 'Σκηνή'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Σκηνή':
info:     - source: 'Game Capture' (vkcapture-source)
info: ------------------------------------------------
Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /usr/share/obs/obs-studio/images/overflow.png
info: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Ήχος Επιφάνειας Εργασίας)

info: ---------------------------------
info: [x264 encoder: 'simple_h264_stream'] preset: veryfast
info: [x264 encoder: 'simple_h264_stream'] settings:
        rate_control: CBR
        bitrate:      2500
        buffer size:  2500
        crf:          23
        fps_num:      30
        fps_den:      1
        width:        1280
        height:       720
        keyint:       250

info: libfdk_aac encoder created
info: libfdk_aac bitrate: 160, channels: 2
info: ==== Recording Start ===============================================
info: [ffmpeg muxer: 'simple_file_output'] Writing file '/home/qushy/2022-04-16 21-15-38.mkv'...
info: Output format name and long_name: matroska, Matroska
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:0
info: [linux-vkcapture]  [0] fd:39 stride:7680 offset:0
/usr/bin/xdg-screensaver: γραμμή 600: xset: εντολή δεν βρέθηκε
info: [ffmpeg muxer: 'simple_file_output'] Output of file '/home/qushy/2022-04-16 21-15-38.mkv' stopped
info: Output 'simple_file_output': stopping
info: Output 'simple_file_output': Total frames output: 906
info: Output 'simple_file_output': Total drawn frames: 942
info: ==== Recording Stop ================================================
info: libfdk_aac encoder destroyed

Proton Log:
steam-1151640.log

Relevant lines of the Proton Log are:

[obs-vkcapture] Init Vulkan 1.1.3
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] Init Vulkan 1.1.3
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] DestroyInstance
[obs-vkcapture] DestroyInstance
[obs-vkcapture] Init Vulkan 1.1.3
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] Init Vulkan 1.1.3
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] DestroyInstance
[obs-vkcapture] DestroyInstance
[obs-vkcapture] Init Vulkan 1.1.3
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] Init Vulkan 1.1.3
[obs-vkcapture] CreateInstance
[obs-vkcapture] DestroyInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] DestroyInstance
[obs-vkcapture] Init Vulkan 1.1.3
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] CreateDevice
[obs-vkcapture] Injecting VK_KHR_get_memory_requirements2 extension
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
[obs-vkcapture] Injecting VK_EXT_image_drm_format_modifier extension
[obs-vkcapture] CreateDevice VK_SUCCESS
012c:info:d3d12_device_global_pipeline_cache_init: Using global pipeline cache, PSO caches will not be saved to individual blobs.
[obs-vkcapture] DestroyDevice
[obs-vkcapture] DestroyInstance
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
[obs-vkcapture] CreateDevice
[obs-vkcapture] Injecting VK_KHR_get_memory_requirements2 extension
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
[obs-vkcapture] Injecting VK_EXT_image_drm_format_modifier extension
[obs-vkcapture] CreateDevice VK_SUCCESS
012c:info:d3d12_device_global_pipeline_cache_init: Using global pipeline cache, PSO caches will not be saved to individual blobs.
[obs-vkcapture] CreateXlibSurfaceKHR
[obs-vkcapture] CreateSwapchainKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] DestroySwapchainKHR
[obs-vkcapture] CreateSwapchainKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] DestroySwapchainKHR
[obs-vkcapture] CreateSwapchainKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] Texture VK_FORMAT_B8G8R8A8_UNORM 1920x1080
[obs-vkcapture] Available modifiers:
[obs-vkcapture]  0: modifier:144115188488387331 planes:2
[obs-vkcapture]  1: modifier:144115188488370947 planes:3
[obs-vkcapture]  2: modifier:144115188488174339 planes:3
[obs-vkcapture]  3: modifier:144115188486904579 planes:1
[obs-vkcapture]  4: modifier:144115188084250882 planes:1
[obs-vkcapture]  5: modifier:144115188075858177 planes:1
[obs-vkcapture]  6: modifier:0 planes:1
[obs-vkcapture] Got planes 1 fd 331
[obs-vkcapture] Got modifier 0
[obs-vkcapture] ------------------ vulkan capture started ------------------

Affter that part it's all the following till the end:

[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] DestroySwapchainKHR
[obs-vkcapture] ------------------- vulkan capture freed -------------------
[obs-vkcapture] CreateSwapchainKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] DestroySwapchainKHR
[obs-vkcapture] DestroySurfaceKHR

from obs-vkcapture.

nowrep avatar nowrep commented on August 22, 2024

Yes, you shouldn't be using the transparency option unless you really need it.

When you say there is performance hit, is it only when you are recording or also when the capture is just showing in preview?

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

For what it's worth Flatpak OBS with OBS VKCapture seems to be slightly faster, about 10% faster, so a performance impact of 50-60%.

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

Yes, you shouldn't be using the transparency option unless you really need it.

When you say there is performance hit, is it only when you are recording or also when the capture is just showing in preview?

Even without recording the performance hit is the same. I just tried it.

from obs-vkcapture.

nowrep avatar nowrep commented on August 22, 2024

Even without recording the performance hit is the same. I just tried it.

That's definitely not expected, without recording/streaming the capture hit should be very small (130 fps-> 129 fps for me with GPU at 100% utilization).

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

Even without recording the performance hit is the same. I just tried it.

That's definitely not expected, without recording/streaming the capture hit should be very small (130 fps-> 129 fps for me with GPU at 100% utilization).

Yeah it seems to be specific to HZD as well. I don't know why.

from obs-vkcapture.

nowrep avatar nowrep commented on August 22, 2024

Actually I'm not really sure what should be expected with internal gpu. All it does is an image copy in gpu memory each frame (and then there is an implicit synchronization/locking between obs and the game).

As long as you are not bandwidth limited AND using optimal format the hit should be minimal. But since this is an internal gpu it uses slower memory and also "bad" format (hard to say which one of the two is more to blame).

There was a similar issue #22 (which was the reason for adding the linear flag) but that got fixed eventually by upgrading kernel/mesa.

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

I try running it with DRI_PRIME=1 and get back to you. Mesa is mesa-git compiled from source.

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

Actually I'm not really sure what should be expected with internal gpu. All it does is an image copy in gpu memory each frame (and then there is an implicit synchronization/locking between obs and the game).

As long as you are not bandwidth limited AND using optimal format the hit should be minimal. But since this is an internal gpu it uses slower memory and also "bad" format (hard to say which one of the two is more to blame).

There was a similar issue #22 (which was the reason for adding the linear flag) but that got fixed eventually by upgrading kernel/mesa.

DRI_PRIME=1 seems to solve the issue, Thanks so much for the suggestion! :)

from obs-vkcapture.

nowrep avatar nowrep commented on August 22, 2024

It works now without forcing linear?

So you also have dedicated GPU? Both game and obs should be running on the same GPU.

from obs-vkcapture.

QushyQushy avatar QushyQushy commented on August 22, 2024

It works now without forcing linear?

So you also have dedicated GPU? Both game and obs should be running on the same GPU.

I actually installed Garuda cause Unity or Unreal wouldn't work on Fedroa. But yeah, I run both OBS and the game with DRI_PRIME=1 but i did have to force linear for it to work.

from obs-vkcapture.

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.