Skip to content

Releases: ConfettiFX/The-Forge

May 17th, 2018 - Linux Unbuntu 18.04 LTS support

10 Jul 20:58
cfa2800
Compare
Choose a tag to compare
  • The Forge now supports Ubuntu 18.04 LTS and is tested with AMD and NVIDIA cards with latest drivers (see a description of our testing setup below)
  • Vulkan (PC and Linux):
    • added VK_EXT_DEBUG_UTILS_EXTENSION_NAME support but excluded it for debugging with RenderDoc because RenderDoc doesn't support the extension currently
    • VK_FEATURE_TEXTURE_ARRAY_DYNAMIC_INDEXING_ENABLED and VK_EXT_DESCRIPTOR_INDEXING_ENABLED are now both added
    • On AMD GPUs, VK_EXT_DESCRIPTOR_INDEXING_ENABLED should be used now by the AMD 18.20 preview driver; so the work around in the Visibility Buffer "shade" shaders should not be necessary anymore
  • All variable names were normalized following the naming convention
  • Issue fixed: #44 Use VK_EXT_debug_utils

May 3rd, 2018 - The Forge in a DLL / New Vulkan Extension support / macOS/iOS clean up

10 Jul 20:58
Compare
Choose a tag to compare
  • We re-architected the rendering interface. If you use an older version, there are a lot of breaking changes in this update
    • replaced begin / endRender with cmdBindRendertargets
    • made the renderer compile into a DLL, so that you can have a Vulkan and a DirectX 12 DLL and switch between them during run-time. There is a new unit test showing this functionality. Removed more C++ constructs to make that happen
  • DirectX 12: fixed bug in sampler comparison
  • Vulkan (Windows and Linux):
    • upgraded to Vulkan SDK 1.1.73.0
    • added support for VK_EXT_descriptor_indexing and GL_EXT_nonuniform_qualifier
    • fixed minimize bug
  • macOS / iOS:
    • updated to macOS 10.13.5 Beta (17F59b) / iOS 11.3.1 (15E302)
    • modified FileSystem so that macOS resembles the windows version in its behaviour
    • logging is working now on macOS / iOS: fixed issue #26 "No logging on macOS". To access iOS Logs after the application finished. Open the Devices and Simulator window in XCode and download the container for the app. The log can be found in the Contents of the container, in Appdata/Documents folder
    • Threads on macOS and iOS were not being joined on destruction, now they are
    • Building for macOS now only outputs errors and warnings, reducing the output to only the important info
  • NuklearUI: added a new tree branch system to enable tabs in the future

April 19th, 2018 - Full-featured Linux Ubuntu 16.04.4 LTS Support

10 Jul 20:59
Compare
Choose a tag to compare
  • Moved NuklearUI into the middleware folder; still WIP
  • Windows:
    • First pass of Linked Multi-GPU support for DirectX 12 and Vulkan; new unit test only supported on Windows. Requires NVIDIA Beta Driver 389.20 or later for support on Vulkan. NVIDIA only, not tested on a set of AMD GPUs so far
    • DXR:
      • Added support for local root signatures
      • Added new unit tests showing usage of local root signature and shadow rendering
      • Update FallbackLayer Release binaries
  • Linux: all the unit tests (except: 09) and the Visibility Buffer are now supported on the hardware and software configuration described below
  • macOS: upgraded to latest OS
  • Fixed issues:
    • #39 "Font Rendering"
    • #38 "Resources.aps"
    • #29 "Problem in ImageFormat::GetBytesPerPixel()"

April 5th, 2018 - Linux Ubuntu 16.04.4 LTS Alpha Support and Ray Tracing Interface used by DirectX Ray Tracing (DXR)

10 Jul 20:59
Compare
Choose a tag to compare
  • Addded initial support for Ubuntu 16.04.4 LTS with the AMD Pro Driver and RADEON RX 480 / Vega. Please see the Linux requirement list below for the required software packages and hardware support. Known Issues:
    • Panini Projection not working in 04_ExecuteIndirect
    • In 03_MultiThread the CPU Graph is not drawing
    • Visibility Buffer is not implemented in the moment
  • Implemented a common interface for Ray Tracing and the first "user" is the DXR. There are now five simple unit tests for DXR. Please read our critical view on DXR here.
  • Published a blog entry that offers details for the Triangle Visibility Buffer implementation in The Forge here.
  • Hiding the code for automated testing behind a #define
  • Changed the architecture for Load / Unload, now they are independent and graphics pipeline creation was moved to Load / Unload to cover render target format changes, MSAA changes etc.
  • Vulkan:
    • Fixed a stencil op translation bug
    • Updated the Vulkan Memory Allocator and the Volk meta loader open-source libraries to latest
    • Updated Vulkan to support Linux Ubuntu 16.04.4 LTS
    • Fix small primitive culling by sending correct sample count for shadow map viewport
    • Add barrier between light cluster clearing and compute to fix race condition on AMD cards in Visibility Buffer
      and others
  • macOS / iOS
    • fixed issue #27: fixed the window name for 08_Procedural on macOS
    • upgraded to Xcode 9.3 (9E145), macOS 10.13.4 (17E199), iOS 11.3 (15E216)
  • XBOX One: smaller bug fixes, please check the log

March 15th, 2018 - Middleware Interface

10 Jul 20:59
Compare
Choose a tag to compare
  • Added a IMiddleware interface that is now used by Panini Projection. This will be refined and used by more middleware packages in the future
  • More unified math library compatible with the PS4 math library
  • PC Vulkan
    • Upgraded to Vulkan 1.1.70.1
    • We are now using volk -the metaloader for Vulkan- and load all Vulkan functions dynamically to bypass the loader overhead
    • Due to lack of support of "NonUniformResourceIndex" for Vulkan, we had to create an "interesting workaround" in the Visibility Buffer demo
  • XBOX One: major update! Numerous changes and performance optimizations please check the log file of the internal repository

February 23rd, 2018 - iOS Improvements

10 Jul 21:09
Compare
Choose a tag to compare
  • Added code for our automated test framework
  • Removed some old left-over code that was copied into the TinySTL code base. Now the whole codebase is more consistent with TinySTL
  • Fixed some visual differences between APIs in the PBR example
  • Separated the app interface load / init and unload / exit functions better in the whole code base
  • Root signatures can be build for several sets of shaders while pipelines only have one shader set. This way you can use root signatures in several draw calls that will require similar settings except the shaders. We now reduced the number of root signatures in the Visibility Buffer to make that more obvious
  • Move the shader cache directory to avoid any conflict
  • PC
    • Made buffer / texture naming for PIX debugging more explicit
    • Changed the pipeline creation code to only require a few properties of the render target and not the whole render target
    • Vulkan: remove unnecessary lock in renderpass lookup
  • iOS
    • Explicitly set the mCompleted value of a fence to false when submitting
    • Created the presentation command buffer from the main rendering queue to avoid the nil drawable issue on iOS
    • Removed unused CAMetalLayer
    • Removed util_bind_root_constant in favor of the setBytes function for rootConstant binding
    • Removed a bug in our fencing logic which was forcing to wait on all fences (ignoring their status)
  • XBOX One: numerous changes and performance optimizations please check the log file of the internal repository

February 14th, 2018 - iOS Alpha

10 Jul 21:09
2e23ee1
Compare
Choose a tag to compare

First of all: thanks a lot for the amount of feedback and support we received from the community. I think the amount of code changes in this release is a reflection of the strong feeback. Keep it coming!

  • Abstracted the application level by using the interface in IApp.h
  • Refactored addShader, it now loads binary shaders and the interface is more abstract. This reduced the number of lines of code in every example. This is an intermediate step to achieving a more unified cross-platform shader system
  • Upgraded the BRDF example to PBR
  • Removed Panini projection feature to add it into the new Middleware_3 folder
  • Added the Fluid Studio memory manager after getting permission from the original author
  • Fixed all bugs in issue tracker
  • First iOS support. Please see iOS software and hardware requirements below.
    • Added support for on-tile textures
    • In the moment there is no UI and the camera and the input system is basic. We are planning to add https://github.com/jkuhlmann/gainput in the future
  • PC:
    • Added a Visual Studio extension that allows to compile shaders with a right mouse click on the shader file (need to be installed from the Tools folder or by clicking on the PRE_BUILD.bat file)
    • Improved GPU recognition: in case a notebook has an integrated GPU and a discreete GPU: it will pick the discreete GPU under certain conditions
    • Now use raw mouse input to workaround the problems with the last Windows 10 update
    • Better synchronization between CPU and GPU
    • Moved to Visual Studio 2017 and Windows SDK 16299.91 (Fall Creators Update) and Vulkan SDK 1.0.68
  • XBOX One: numerous performance improvements (check the non-public repository history log)

Any rendering framework needs a test farm that makes sure it is running on all the devices and OS'es supported. Our current testing setup is based on Jenkins and only supports a rather narrow range of hardware devices. We will add more hardware devices over time; this also depends when and how we get ahold of them. Considering that the feature set of The Forge is forward looking with support for Vulkan, DirectX 12 and Metal 2, we will leave out a lot of older hardware. We already started a conversation with Intel and Apple about the challenges we have and we will get in touch with driver teams from Samsung, Qualcomm,Google, AMD, NVIDIA and others to provide feedback on drivers.

January 31st, 2018 - Bug fixes and performance improvements

10 Jul 21:08
Compare
Choose a tag to compare
  • Fixed all the issues mentioned in the issue tracker.
  • Removed the NVX commands, we don't use them and they seem to confuse people.
  • Dealing with multiple resolutions on PC is now a bit easier. We need to expose this in the GUI, so that you can switch in full-screen between -let's say- 1080p and 4k back and forth
  • For macOS the procedural planet unit test works now too. That should bring macOS on par with PC on the macOS platforms we are currently testing. All unit tests and the Visibility Buffer work.
  • We improved performance of the Visibility Buffer on macOS a bit more. Now if you have a comparable GPU on the PC, the performance should be on a similar level on macOS and PC.

January 25th, 2018 - macOS Performance Improvements

10 Jul 21:08
76a1b00
Compare
Choose a tag to compare
  • Mainly improved the performance of the macOS build. macOS is now using the same art assets as the PC and the performance of the triangle filtering compute shader is improved.
  • Reduced the size of the art assets because we only need one version of San Miguel for all platforms now.
  • macOS now runs the Hardware Tessellation unit test.
  • There is also now a new unit test that shows a procedurally generated planet.