Commit Graph

1196 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks a2f518224f source/shader: Use direct rendering (#501) 2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks 4a3d1d4fa5 filter/shader: Use direct rendering (#501) 2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks e7dd44e3ec gfx/shader: Allow specifying effect for direct rendering (#501) 2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks 4e21830627 filter/dynamic-mask: Require buffered rendering 2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks ed92e7390a filter/displacement: Require buffered rendering 2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks 29d60180cc filter/color-grade: Add direct rendering support (#501) 2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks 4c082ad3a9 filters/color-grade: Fix support for translucent Inputs
Additionally also document some of the code and enforce certain GPU states for rendering.
2023-03-28 13:11:16 +02:00
Xaymar d7d34028a0 locale: New Crowdin updates (#482) 2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks af660cfc1d cmake: (Windows) Fix incorrect reference to CMAKE_PACKAGE_PREFIX 2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks 4405c13901 ci: (MacOS) Build .pkg installer 2023-03-28 13:11:16 +02:00
Christopher P Yarger 483e3a5f2d cmake: (MacOS) Add .pkg installer generation
Enables users of the Mac Operating System to use an automated installer instead of the manual installation method which is prone to user errors. This is done via the use of "Packages", which generates a .pkg file according to the requirements we present it.
2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks 8189076cd2 cmake: Fix version detection code
When the CMake script was rewritten, not much attention was put into the versioning code, resulting in odd behavior which was never found or fixed. For example, the automatic splitting of the suffix from the number never worked, and the build number was being stored in the wrong variable.
2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks d24fb07dcc cmake: Update download logic 2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks ca6fb45c9d ci: Add caching for many steps 2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks e88cd34db1 ci: Also trigger validation on tags 2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks ee6afdcded ci: (MacOS) Automatically detect Homebrew prefix 2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks d8bb1cecc5 cmake: (MacOS) Fix linker path for libraries 2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks eef6d2d445 ci: (MacOS) Fix installation of Qt5
Homebrew now defaults to Qt6, but we still require Qt5 for the time being.
2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks 766cb605db ci: Fix formatting for main.yml 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks 597a240d73 project: 0.10.0b1 2023-03-28 13:11:14 +02:00
Xaymar 1036d274f6 locale: New Crowdin updates (#464)
* New translations en-US.ini (Japanese)
2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks 24f1cd0cde cmake: (MacOS) Install to a more reasonable structure 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks cb2621f98b cmake: Don't require code signing on MacOS 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks 495b8cda66 ci: Add builds for MacOS x86-64
Due to OBS Studio not yet supporting ARM64 out of the box, we currently only provide builds for x86. Additionally, due to our use of C++17 (which we will not drop to C++14, don't bother asking), the minimum OSX version is 10.15.
2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks 5b893ca5d6 cmake: Add otool post-build steps for MacOS 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks 303c14de4e ffmpeg/tools: Fix incorrect transfer characteristics
Both Rec. 601 and sRGB looked extremely wrong before, resulting in weird or warped colors. Since it is very difficult to find up to date and accurate information on standards, we should simply go for what has the most widespread support.
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks 03a8168beb project: Version 0.10.0a2
* 3D Transform should now appear again.
* Automatic disabling of unsupported features should now work in CMake.
* Fixed a compilation error on some versions of GCC.
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks 1909ee01d6 obs/gs/vertex: Don't include unused headers 2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks b0ac0b724a nvidia/cuda: Use reinterpret_case instead of static_cast 2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks 01f16e6d1f cmake: Fix features being enabled on unsupported platforms 2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks be699c643c cmake: Fix TRANSFORM typo 2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks c95afab9d4 project: Version 0.10.0a1
- #437 Use 'git describe --tags' for versioning.
- #439 Add support for overriding the automatically detected version.
- #454 Fixed new versioning code breaking when the tag is on the current commit.
- #427, #428 Fix Qt interaction before OBS Studio is actually ready.
- #452 Fixed building without updater but with UI.
- #447 Redesigned Color Grading to support two rendering modes:
    - Direct Rendering applies the entire color grading function to every single pixel, and is thus more accurate, but much slower.
    - #-Bit LUT Rendering first applies the color grading function to a LUT that varies in accuracy, and then uses that LUT to render the actual output instead, which is much faster but less accurate.
- #447 Optimized Direct Rendering in Color Grading to be up to 25% faster, while using 50% less VRAM.
- #440 Removed support for Ubuntu 18.04 as it ships seriously outdated versions of libraries we use.
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks e59a33423e cmake: Always use long git describe 2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks 26a76e0451 filters/color-grade: Redesign for use with LUTs
There is hardly any reason for us to recalculate everything all the time. LUTs can cache the work once, and then re-use it every time necessary, drastically reducing the impact of Color Grading by almost 60% (on some GPUs even more). Additionally this fixes the negative gamma issue, which plagued the filter for a while.

In the future, once PR 4199 (https://github.com/obsproject/obs-studio/pull/4199) has been merged, we can cut away one intermediate rendering step currently required to make the effect work. Hopefully this will be with the 27.x release of OBS Studio.
2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks eba0a467d5 gfx/lut: Add a simple but efficient LUT producer and consumer
For simple image and video editing, LUTs (Look-Up Tables) are vastly superior to running the entire editing operation on each pixel - especially if all the processing can be done inside a single shader.

Due to the post-processing requirements for our LUTs, we are limited to 8 bits per channel - though clever use of the unused Alpha channel may result in additional space. For our purposes however, this is definitely enough.
2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks 73f9257633 effects: Add RGB, HSV, and YUV conversion functions 2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks a027a57d09 effects: Add generic shared header with common code 2023-03-28 13:11:11 +02:00
Xaymar 2d878fcb59 locale: New Crowdin updates (#449)
* New translations en-US.ini (French)
2023-03-28 13:11:11 +02:00
tytan652 6ccac3331a ui: Don't reference Updater if it's been disabled
Merges #446
2023-03-28 13:11:10 +02:00
kilin a7eac490d5 examples: Add Pixelation filter shader (#418) 2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks 662a858ab6 ci: Update scripts for refactor and adjust OBS to v26.1.x 2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks b1b6fa2cf9 cmake: Add packaging support for Windows, Linux and Mac
Also adds packaging for the proposed unified plugin format.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks 5ac894c59c cmake: Refactor component and dependency system
A complete redesign of the component and dependency system is necessary in order to support additional platforms, such as MacOS and other Linux platforms. Additionally it results in a much cleaner code base, which is less confusing overall.

Eventually it might be necessary to push components of StreamFX into their own CMake projects, as it is getting kind of complex now. Especially with the push for a proper plugin manager, things get dicey for big plugins like StreamFX.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks b8ff72d6c8 sources/mirror: Clamp minimum size to 1x1
This works around an issue in our code with asynchronous or delayed sources.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks 188e58bbda ci: Remove automatic build support for Ubuntu 18.04
The majority of users should have already switched or upgraded to Ubuntu 20.04 at this point, so there is no point in building further Ubuntu 18.04 versions. This saves us some CI slots, and also reduces the number of target systems to actually support.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks 851e1e8939 cmake: Add proper version override support 2023-03-28 13:11:09 +02:00
Xaymar 49eff4a1cf locale: New Crowdin updates (#401)
* New translations en-US.ini (Turkish)
* New translations en-US.ini (Sinhala)
* New translations en-US.ini (Spanish)
* New translations en-US.ini (Czech)
* New translations en-US.ini (Serbo-Croatian)
2023-03-28 13:11:09 +02:00
Michael Fabian 'Xaymar' Dirks 90a9bd56a7 cmake: Fix DownloadProject version warning 2023-03-28 13:11:09 +02:00
Michael Fabian 'Xaymar' Dirks 2d522f3c50 cmake: Improve versioning system 2023-03-28 13:11:07 +02:00
Michael Fabian 'Xaymar' Dirks 675186a737 ui: Fix additional Qt issues 2023-03-28 13:11:07 +02:00