Giter Site home page Giter Site logo

diligentgraphics / diligentcore Goto Github PK

View Code? Open in Web Editor NEW
574.0 34.0 128.0 41.22 MB

A modern cross-platform low-level graphics API

Home Page: http://diligentgraphics.com/diligent-engine/

License: Apache License 2.0

C 8.79% C++ 86.24% HLSL 1.08% CMake 1.14% Shell 0.05% Objective-C++ 1.27% Python 0.21% Batchfile 0.01% GLSL 0.24% Objective-C 0.39% C# 0.53% PowerShell 0.01% HTML 0.04%
opengl opengl-es direct3d graphics graphics-engine d3d11 d3d12 shaders vulkan vulkan-api

diligentcore's People

Contributors

029onikyu avatar alastairpatrick avatar azhirnov avatar bugztroll avatar christoffergreen avatar dinolek avatar dolphineye avatar dom607 avatar dpellegr avatar eugeneko avatar jayrulez avatar logzero avatar luzpaz avatar mikhailgorobets avatar mmassing avatar shootfast avatar speedym avatar themostdiligent avatar threax avatar tombish avatar ulifei avatar v7medz 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

diligentcore's Issues

Unhandled Exception every time ShaderResourceBinfing->GetVariable(#, #)->Set(TexSRV) is called.

Hello, every time I call mSRB->GetVariable(#, "#)->Set(Tex_SRV) an exception is thrown on every renderer.
I traced all of them to a "RefCntAutoPtr" constructer.

RefCntAutoPtr(IObject* pObj, const INTERFACE_ID& IID) noexcept
 :  m_pObject(nullptr)
 {
      if(pObj)
         pObj->QueryInterface( IID, reinterpret_cast<IObject**>(&m_pObject) );  //<<This Line
 }

The constructor is called from these location:

On D3D12.
On D3D11.
On Vulkan.

It is worth noting that I noticed every ITextureView I create has the same address in memory...

Incorrect include paths in GraphicsAccessories.h.

Hello, I noticed GraphicsAccessories.h includes depend on "Additional Include Directories", Which cause errors with engines who don't include those directories.

/// Defines graphics engine utilities
#include "GraphicsTypes.h"
#include "Shader.h"
#include "Texture.h"
#include "Buffer.h"
#include "RenderDevice.h"
#include "DebugUtilities.h"

Should be:

/// Defines graphics engine utilities
#include "../../GraphicsEngine/interface/GraphicsTypes.h"
#include "../../GraphicsEngine/interface/Shader.h"
#include "../../GraphicsEngine/interface/Texture.h"
#include "../../GraphicsEngine/interface/Buffer.h"
#include "../../GraphicsEngine/interface/RenderDevice.h"
#include "../../../Platforms/Basic/interface/DebugUtilities.h"

Add split barriers to the API

Add begin transition/end transition flags to StateTransitionDesc structure. In Vulkan backend, submit barrier at either begin or end stage.

Compiler Error C2440

Hi! I was trying to build DiligentCore and got "Compiler Error C2440" in few places in code.
'''
c:\diligentcore-master\primitives\interface\FormatString.h(68): error C2440: 'initializing': cannot convert from 'initializer list' to 'Diligent::MemorySizeFormatter'

C:\DiligentCore-master\Graphics\GraphicsEngineVulkan\src\VulkanUploadHeap.cpp(81): error C2440: 'initializing': cannot convert from 'initializer list' to 'Diligent::VulkanUploadHeap::UploadPageInfo'

'''

Only GL bakend was sucessfuly compiled all other are failed (

I'm use: VS2015, Win10, i7

Shader creation isn't quite flexable.

Hello, I found great difficulty in implementing Diligent into my Engine due to its heavy abstraction of shader creation. Let me explain to you.
To create a shader we need only one thing (ShaderCreationAttribs) which hides all real data from the user/client.

A typical game engine does the following:
1- Compile shader from source, then translate it into other language if necessary (ex: HLSL to GLSL)
2- Reflect all data necessary.
3- Combine the compiled shader and its reflected data to a structure (aka ShaderBlob)
4- Create GPU shader in the graphical backend.

So the engine have full access to (Compiled shader, shader reflected data and the GPU shader program).
Diligent hides compiled shader and requires the user to query reflection data by IShader->GetVariable() which isn't really practical, a better implementation would be grouping all reflection data into a class.

Plus, Diligent require engines declare the type of a variable at the shader creation that makes things worse.

In my opinion shader creation should be separated to multiple stages/functions that will ease integration into engines.

I want to hear your suggestion, I am ready to modify diligent and do my best.

Move HLSL->SPIRV compiler to dynamic library

This component is large and should be optional. If an application does not need to compile HLSL shaders at run time, it should not pay the price of increase executable size.

DX12 texture update error

D3D12 ERROR: ID3D12CommandList::CopyTextureRegion: D3D12_SUBRESOURCE_FOOTPRINT::RowPitch must be a multiple of 256 (aka. D3D12_TEXTURE_DATA_PITCH_ALIGNMENT) and greater or equal to the pitch implied by the width. RowPitch is 16, and must be greater or equal to 16 when D3D12_SUBRESOURCE_FOOTPRINT::Width is 4 and D3D12_SUBRESOURCE_FOOTPRINT::Format is R8G8B8A8_TYPELESS. [ RESOURCE_MANIPULATION ERROR #868: COPYTEXTUREREGION_INVALIDSRCROWPITCH]

Diligent Engine: ERROR: Debug assertion failed in Diligent::CommandContext::Close(), file commandcontext.cpp, line 94:

Failed to close the command list

Add resource layout object to the API

This will be an abstraction for root signature/pipeline layout.

Besides that:

  • Move shader variable type selection from shader initialization to PSO initialization
  • Initialize static shader resources through PSO rather than through shaders
  • Return variable list from shader objects

Enable Vulkan on iOS via MoltenVK

Vulkan backend is already ported to MacOS. It also builds fine on iOS, but it does not link properly with MoltenVK libraries: none of Vulkan functions are resolved.

Add FinishFrame() function to device context

This will trigger the context to release all resources, make it explicit and will allow do all the related work in a free-threaded manner
Also. move command queue and all related logic to device context

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.