Code Monkey home page Code Monkey logo

confettifx / the-forge Goto Github PK

View Code? Open in Web Editor NEW
4.6K 179.0 484.0 2.33 GB

The Forge Cross-Platform Rendering Framework PC Windows, Steamdeck (native), Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2

License: Apache License 2.0

C++ 78.97% C 12.26% Objective-C 0.35% Objective-C++ 4.70% GLSL 0.15% Python 2.11% Batchfile 0.04% Shell 0.03% Lua 0.30% Metal 1.02% Java 0.07% PowerShell 0.02%
directx12 vulkan vulkan-api macos ios xbox ps4 android metal linux-ubuntu

the-forge's People

Contributors

antoineconffx avatar boberfly avatar jenkinsconffx avatar matt-theforge avatar tfjenkins avatar wolfgangfengel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

the-forge's Issues

How can I add The Forge as a dependecy?

Hey! I have a question about The Forge configuration.
You have an examples, but in examples, you connect libraries directly to solution. How can I add libraries as a submodule to my project?

Font Rendering

I noticed with the font rendering that vulkan is slightly blurry compared to d3d12. You can see in the screenshots below the green color is also slightly different between the two. Depending on what background color and font color, the difference can be really noticeable. If you save the two images below and quickly flick between them you will see the problem.

d3d12
vulkan

04_ExecuteIndirect crash on macOS

I've tested the Unit Tests on my Mac Pro 2010 / Vega 56 running MacOS Mojave 10.14.4.
Xcode: Version 10.2.1 (10E1001)
The examples are running fine except the 04_ExecuteIndirect.

It crashes directly at the beginning of
void AsteroidSimulation::Init(uint32_t rngSeed, uint32_t numAsteroids, uint32_t numMeshes, uint32_t vertexCountPerMesh, uint32_t textureCount)

The error reported by the debugger is:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

Can anybody help?

Regards

Request: Support V-Sync off on Metal unit tests..

Hi,
would be nice if support for disabling Vsync on Metal could be added.. I think that this may require MacOS 10.13 and/or Metal 2 features but could be good to see Compute and ExecuteIndirect samples make use of full GPU load..
also adding support for others backends: Vulkan and D3D12 would be nice..

Resources.aps

You might want to gitignore that file in the Common_3/OS/Windows folder. It's a compiled Windows resource file, it's not needed to be there I think.

Sent from my MI6 using FastHub

Request: don't require "iOS GPU family 4" unless explicitily needed..

Hi,
nice to see now all units tests came with IOS support.. but seems I compiled 01 unit test and doesn't run
on ipad Pro 10.5 (iOS GPU family 3) because says texture cube map arrays need ios gpu family 4..
this is only supported on latest iphones and iphone x..
don't know if engine could lower requiriments to "ios gpu family 3" with much more use base..
for example 07 tesselation unit test should run on family 3 devices..
thanks..

Question: Plans to port all unit tests to iOS?

Hi,
I see 01_transformation_ios sample but the others aren't avaiable on iOS right now..
is that due to Metal limitations on iOS vs on desktop or just is a start and there are plans to port it?
thanks..

Question: The Forge is an low-level rendering framework?

Hi, i just discovered The Forge framework could be a nice library for my starting project and i need to search an a good long-term stack, i'm around The Forge library or bs::framework, and empirically i saw some details compared with bs::framework, Seems the renderer itself is really low-level, the renderer is mostly C-style functions and pointers, and the engine build system is crude but simplistic making it easy to replace with my own, unlike bsf, which needs a lot of tunning and heavy modifications.

I like you try to avoid to use the Standard STL with TinySTL. Also i'm aiming to background resource loading (textures, meshes, etc) and how feasible will be task scheduling for gameplay, rendering, and other middleware (Audio, AI, etc).

There's concept of Technique, Materials and Pass?, otherwise they can be implemented easily as an high-level layer with the APIs provided by the framework?

Thanks.

07 Tesselation Macos sample fails on both Vega 56 and Intel HD 530..

applied your pull request and procedural sample works but tesselation sample fails with..

2018-01-27 14:56:31.843688+0100 07_Tessellation[820:9349] validateFunctionStepRate, line 301: error 'MTLVertexStepFunctionPerVertex not allowed with postTessellationVertexFunction.'
validateFunctionStepRate:301: failed assertion `MTLVertexStepFunctionPerVertex not allowed with postTessellationVertexFunction.'
(lldb)

captura de pantalla 2018-01-27 a las 14 57 11

Any documentation available?

Forgive me if I’m being thick but I can’t find any doc references in the repo, wiki. Are there any docs available somewhere?

Memory aliasing

I've been considering switching my DX12-only project to using the The-Forge. I've already done a simple conversion which went pretty smoothly and seems to work well. Some feedback on the conversion in case it's useful to you:

  • I had some class name collisions due to The-Forge not using namespaces or some kind of class prefix.
  • The use of a #define for PI also caused a problem.
  • Options like NO_GAINPUT should maybe be the default. I expect I'm not going to be alone in just wanting the core rendering capabilities as described in the readme and not so much of the utility code also provided. Even just some advice in the readme on how to include the minimum for rendering would have been useful.

I'm interested to know if there any way to support memory/resource aliasing in The-Forge? In my current DX12 implementation I know the lifetimes of transient resources over a frame and so I've made use of memory aliasing to reduce the total amount of memory allocated. It's not clear to me how to do anything like this with The-Forge - I might be missing something.

Many thanks!

Subresources of buffer access

Hello,

I'm actually integrating the-forge into an existing higher-level renderer which already sports exclusive DX12 support, and ran into an issue when it comes to accessing subresources of buffers/textures. Is there a particular convention yet to deal with this in the-forge? I haven't looked at the higher-level parts of the code to see if it's really needed or not or where, or if I can get around this.

It might be just the case where I specify an offset and size to updateResource and make sure the memory access is set correctly on the buffer creation. The code also deals with resource barriers/transitions which takes the subresource into account which I think the-forge hasn't got the ability to do yet, when I do a brief search in the backend code and compare.

I'll share this integration when it's ready, but in the meantime is there a better way for discussion than issue tickets?

Cheers

Any reason to require 10.13.3 for Macos?

Now 10.13.3 is stable but I have currently 10.13.2 installed..
can expect Metal 2 graphics driver bugs running 10.13.2?
would be nice to know what Metal2 bugs have been fixed in 10.13.3 anyway..

The-Forge as a plugin replacement

This isn't an issue per se, but I was wondering how much effort would be involved in using The-Forge as a module in an existing game-engine-like framework.

If someone wanted to leverage the cross-platform rendering side of The-Forge but leave all the other bits behind.

Can not transition non-pixel shader resource to pixel shader resource

Hi,

I'm having an issue as per the title, I get the following error:

D3D12 ERROR: CGraphicsCommandList::SetGraphicsRootDescriptorTable: Resource state (0x40: D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE) of resource (0x000001ABA44DC580:'SceneDepth') (subresource: 0) is invalid for use as a PIXEL_SHADER_RESOURCE. Expected State Bits (all): 0x80: D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE, Actual State: 0x40: D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE, Missing State: 0x80: D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. This validation is being enforced at bind during command list recording because the descriptor for this resource in the root signature is declared as DATA_STATIC_WHILE_SET_AT_EXECUTE. [ EXECUTION ERROR #538: INVALID_SUBRESOURCE_STATE]

I've called cmdResourceBarrier appropriately beforehand but it does not actually do anything due to this line:

if (!(pTexture->mCurrentState & pTransBarrier->mNewState) && pTexture->mCurrentState != pTransBarrier->mNewState)

with:

pTexture->mCurrentState = RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (64)
pTransBarrier->mNewState = RESOURCE_STATE_SHADER_RESOURCE (192)

so the first part of the if statement is false.

Thanks

Use VK_EXT_debug_utils

Debug utils now replace both debug report and debug markers. Debug report is now deprecated.

Question: Vulkan raytracing support planned?

Hi,
just read about Nsight graphics update at Siggraph with Vulkan raytracing support (altough no drivers yet) and seeing you support already DXR wanted to ask if you plan to support Vulkan raytrace in the Forge in addition to DXR..
better yet (and seeing http://confettishadertranslator.azurewebsites.net) would be if you can support translation from DXR HLSL shaders to Vulkan GLSL raytrace extensions (yet to be published) so from one shader we are able to target Vulkan too..
Have a Volta card to test once Vulkan drivers are out..

thanks..

Request: IRC, Gitter or Discord server (and question)

  1. I want to request about any Q/A form, such as IRC, Gitter or Discord. Also,
  2. I have question: how can be implement another implementation of ray tracing, uses Vulkan API 1.1 compute shaders (and, probably, with vulkan.hpp) itself?

Toggling fullscreen not handled

On Windows 10, I pressed alt-enter to toggle fullscreen.
vkAcquireNextImageKHR() returned VK_ERROR_OUT_OF_DATE_KHR.
This triggered assert in Vulkan.cpp:3740:
ASSERT(VK_SUCCESS == vk_res);

[Windows7:Vulkan] Problem in FpsCameraController::onMouseMove() and slow/stopped rendering

I know my setup might not be supported but I've seen what might be a Windows7/10 difference and so this is more of a FYI as it does not effect the core of The-Forge.

  1. Setup Windows7/M$VS15/ Dual monitor (3440x1440|1920x1200)
  2. I've changed all the project files to use VULKAN and not DIRECTX12. Also not using the Windows 10 SDK but 8.1.
  3. Run 01_Transformations -> runs on the bigger screen.
  4. move mouse over the window.
  5. click and it stops rendering. Planets just stop.

Chased the problem down to FpsCameraController::onMouseMove() and the call to setMousePositionRelative(). The setMousePositionRelative() calls the Win32 SetCursorPos(), Windows post's a WM_MOUSEMOVE which in turn ends up calling FpsCameraController::onMouseMove().

If I comment out setMousePositionRelative() it works just the same as my OSX/Mac Pro

Vulkan create_default_resources() default texture type is 1D with height == 2

Vulkan.cpp:1244 create_default_resources() function does not set mType, default value is TEXTURE_TYPE_1D. This conflicts with requested mHeight = 2, resulting ERROR: [internal_debug_report_callback] [Image] : CreateImage extents exceed allowable limits for format: Width = 2 Height = 2 Depth = 1: Limits for Width = 32768 Height = 1 Depth = 1 for format VK_FORMAT_R8_UNORM. (0).

Copy texture command

I was wondering if it would be possible to expose functionality along the lines of vkCmdCopyImage/ID3D12GraphicsCommandList::CopyTextureRegion?

About FBX resource import?

Consult the resource pipeline documentation

Known problems:
-Skeletons and animations scaled from centimeters to meters (* 0.01). This is only required for FBX files. If we want to support other formats this has to be changed.
-See: AssetPipeline.cpp - line: 392 & 537 & 546
-Boris (Unreal Paragon asset) rotated 90 degrees on x axis after putting it through the animation pipeline. Blender also doesn’t import model correctly. Rotating the model in either Maya or Blender causes severe problems in the animation. Makes it look like his nose, fingers and ankle are all broken.

The bone file generated by fbx2ozz is correct。
AssetPipelineCmd.exe generated skeletal rotated 90 degrees on x axis ?

How should fbx be exported or how to set it correctly, I use

		AssimpImporter        importer;
		AssimpImporter::Model model = {};
		if (!importer.ImportModel(fullPath.c_str(), &model))
			return false;

The fbx model is magnified n times, The FBX in the example is correct, how should the FBX model be derived

Problem in ImageFormat::GetBytesPerPixel()

I noticed a lot of ASSERT(format <= ImageFormat::D32F) messages while running Visibility_Buffer (and I think some of the other examples?) so I had a look.

The problem is format == ImageFormat::BGRA8 which is < ImageFormat::D32F so the return value is junk as it's out of range of bytesPP[]

I've done a if(format == ImageFormat::BGRA8) { return 4; } but should proper range checking be done?

Support for "Adaptive Order Independent Transparency with Raster Order Views" on Metal 2?

Hi,
just tested these "new transparency sample" on Windows.. Raster Order Groups mode works OK on DX API..
doing a quick test on Vega of these sample on Macos seems the Raster Order View variant (Intel paper) is missing on Macos altough Metal2 supports "Raster Order Groups"..
As you probably know Raster Order Groups is an optional feature of Metal2 but it's implemented on Vega Metal2 driver, as it shows :
areRasterOrderGroupsSupported 1
so are you planning to implement Raster order group support on the transparency sample on Macos?
would be nice as there aren't many (if any) samples of using Raster Order Groups on Metal..
also note I opened some time ago an issue requesting exposing Raster order groups in Vulkan:
KhronosGroup/Vulkan-Ecosystem#27
so hope eventually it's exposed and transparency AOIT mode can be supported also on Vulkan..
thanks..

How to easily create static libs or any libs?

I can't see any cmake / solution / release libraries for The Forge. Samples are great, but they just refer indirectly to source code... So how can I use The Forge as dependency?

Thanks, regards, Nikita.

Can't run any Mac unit tests or visibility buffer..

Hi,
testing the forge 1.13 samples and run fine compiled with Xcode 10 beta 4 on IOS 12.0 beta 4..
but using exact Xcode on Mac 10.13.6 I get lots of this error:

xcrun: error: unable to find utility "metal", not a developer tool or in PATH

any help is appreciated..

full log for visibility buffer:

Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/shadow_pass.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader shadow_pass.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/shadow_pass_alpha.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader shadow_pass_alpha.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/visibilityBuffer_pass.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader visibilityBuffer_pass.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/visibilityBuffer_pass_alpha.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader visibilityBuffer_pass_alpha.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/visibilityBuffer_shade.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader visibilityBuffer_shade.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/visibilityBuffer_shade.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader visibilityBuffer_shade.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/deferred_pass.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader deferred_pass.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/deferred_pass.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader deferred_pass.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/deferred_shade.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader deferred_shade.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/deferred_shade.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader deferred_shade.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/deferred_shade_pointlight.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader deferred_shade_pointlight.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/clear_buffers.comp.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader clear_buffers.compxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/triangle_filtering.comp.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader triangle_filtering.compxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/clear_light_clusters.comp.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader clear_light_clusters.compxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/cluster_lights.comp.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader cluster_lights.compxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/HDAO.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader HDAO.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/HDAO.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader HDAO.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/HDAO.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader HDAO.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/HDAO.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader HDAO.vertxcrun: error: unable to find utility "metal", not a developer tool or in PATH
Error: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1114) Failed to compile shader ../../../src/OSXMetal/resolve.vert.metalError: /Users/oscarbarenysgarcia/Downloads/The-Forge-1.13/Common_3/Renderer/ResourceLoader.cpp(1307) Error while generating bytecode for shader resolve.vertINFO: [Init] Load shaders : 458.811005 ms

INFO: [Init] Load assimp scene : 5166.097168 ms

INFO: [Init] Load scene buffers : 1093.048950 ms

INFO: [Init] Load clusters : 1613.715942 ms

INFO: [Init] Load textures : 578.322021 ms

Question: native Win HDR support planned?

Hi,
seems just Nvidia added Vulkan HDR support (Windows only) to his latest dev driver via 2 exts
*VK_EXT_swapchain_colorspace
*VK_EXT_hdr_metadata
no pressure, just asking about what's the status & plans for HDR support in "The Forge"?
Right now seems support for HDR TV can be supported on D3D11&D3D12 via new DXGI APIs,
and on Vulkan using the new extensions supported by NV dev driver..

no expert on HDR but for DXGI I mean using new HDR and WCG APIs:
https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/dxgi-1-6-improvements
https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/high-dynamic-range-and-wide-color-gamut

In order to enable HDR and WCG in your app, refer to the following APIs.

    IDXGISwapChain4::SetHDRMetaData : sets High Dynamic Range (HDR) and Wide Color Gamut (WCG) header metadata.
    DXGI_HDR_METADATA_HDR10 : structure containing the metadata settings.
    DXGI_HDR_METADATA_TYPE : enum identifying the type of header metadata.
    DXGI_COLOR_SPACE_TYPE : defines the colorspace (sRGB, YCbCr), color range, gamma settings, and other details of the color format.

thanks..

getUSec function in WindowsBase.cpp seem buggy

getUSec() and getMSec() functions seem to be used using the following code :
double millisec = (double)getMSec() / (double)getTimerFrequency()
double microsec = (double)getUSec() / (double)getTimerFrequency()

If that's correct I believe getUSec should return return curr.QuadPart * (int64_t)1e6; instead of return counter.QuadPart;
getMSec code is in line with the assumed usage.

Question: Is support for OpenGL/GLSL planned ?

Hello,

I haven't tried Forge yet. But it seems very intriguing to me. Wondering if you are planning to support OpenGL/GLSL 4.0+ as I do not see it in the supported APIs on any platform. Could you please clarify this?

Thanks in advance!

Multi-Monitor Support?

What is the best way to set up rendering to multiple full-screen monitors using a single GPU adapter in The Forge? Do you have an example that uses multi-monitor?

Namespacing the main classes

The main renderer isn't namespaced, so adding to an existing system can hit some name clashes.
Adding something like
namespace TheForge{}
around the main class definitions would make it easier to use with other systems.

Tiled resources / reserve resources support ?

Hi,

Our current D3D11-based engine is using tiled resources.
Does The Forge provide any abstration layer for its abstract equivalent (reserved resources in D3D12, etc.) ?

Thanks a lot!
Cheers,
Greg

1.01 release lacks Macos hardware tesselation test xcode project..

You say:
"Release 1.01 macOS now runs the Hardware Tessellation unit test. There is also now a new unit test that shows a procedurally generated earth."
but 07_Tessellation folder is missing OSXMetal subfolder unlike other tests and "macOS Xcode" folder is missing also "07_Tessellation"..
same applies to 08_Procedural sample is lacking OSXMetal subfolder and xcodeproj ..

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.