Comments (14)
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:
from obs-vkcapture.
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.
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.
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.
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.
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.
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.
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.
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.
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.
I try running it with DRI_PRIME=1 and get back to you. Mesa is mesa-git compiled from source.
from obs-vkcapture.
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.
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.
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)
- Failed to resolve glXGetProcAddress HOT 3
- after recent update obs-gamecapture stopped to work with a native OpenGL steam game HOT 13
- Request: Reduce or provide option to reduce verbosity HOT 5
- Feature Request: Exclude multiple windows from being captured HOT 2
- OBS crashes (it might take some time but eventually) when Advanced Scene Switcher checks if vkcapture has output HOT 1
- cannot install vkcapture 1.4.8 even with dependencies HOT 3
- VkCapture will not capture games HOT 3
- OpenGL capture not working after update of steam..? HOT 5
- unable to capture HDR. HOT 1
- Not working for game capture after Gnome 46 update HOT 2
- Help with building 32bit version of VKCapture HOT 1
- OBS Vulkan Capture stopped working for games running via Proton HOT 3
- What's the point of `linux-firmware-git` as a dependency? HOT 1
- Plans to make obs-vkcapture more quiet?
- Plans to make obs-vkcapture more quiet? HOT 1
- Does an environment variable exist for obs-gamecapture? HOT 2
- Severe degradation using obs-vkcapture together with gamescope on Steam games HOT 17
- Feature request: Possible environment variable to capture? HOT 1
- game capture will capture game video, but not audio HOT 1
- [Crash bug] Using vkcapture on Helldivers 2 will hard crash the system, leading to a black screen. You cannot recover. HOT 2
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 obs-vkcapture.