-
-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version 0.5.6: Optimized program bindings, Upload resources with DX COPY queue, Improved automatic resource barriers #84
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…Program::ArgumentDesc)
…f SetGraphicsRootDescriptor calls in Asteroids (step-1)
…ing scene view-projection matrix in shaders (+7% FPS)
…ommands encoding (+20% FPS)
…meConstant argument bindings
- properly use magic_enum, - remove manual enum to string conversion functions, - initialize texture names inside image loader - fix logs formatting
…to the command list where resources are set to pipeline
… lists with COPY command queue on Windows
…Direct queue before resources upload in Copy queue
…resource states synchronization in DX12
…e argument to use DIRECT queue in DX12
egorodet
added
enhancement
New feature or request
refactoring
Code refactoring without adding new functionality
labels
Apr 25, 2021
…except move-constructors
egorodet
changed the title
Version 0.5.6: Optimized program bindings, Upload resources with DX COPY queue, improved automatic resource barriers
Version 0.5.6: Optimized program bindings, Upload resources with DX COPY queue, Improved automatic resource barriers
Apr 25, 2021
Kudos, SonarCloud Quality Gate passed! |
Kudos, SonarCloud Quality Gate passed! |
Kudos, SonarCloud Quality Gate passed! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Methane Kit v0.5 Pre-Release Update 6
Program::Argument
andProgram::ArgumentAccessor
(previouslyProgram::ArgumentDesc
) were refactored from struct to class style with field accesor functions.Program::Argument::Modifiers
bit-mask was replaced withProgram::ArgumentAccessor::Type
enum.Program::ArgumentAccessor::Type::FrameConstant
to reduce number of excessive argument binding setup calls. Frame-constant bindings are properly supported by DX descriptor table layout.ProgramBindings::Create
function as an optional argument to support frame-constant bindings.ProgramBindingsDX
.COPY
comamnd queue is now used by default forBlitCommandList
execution in DirectX (instead ofDIRECT
command queue used before). So the resources upload is also done with a COPY queue in DX now. It can be switched back to usingDIRECT
queue withRenderContext::Settings::options_mask
bit-mask flagContext::Options::BlitWithDirectQueueOnWindows
.Resource::SetData
method is extended with an optional argument of command queue for resource state synchronization. Command queue where resource is actually used should be passed whenever possible.Resource::SetData
method implementations to theSetProgramBindings
,SetVertexBuffer
andSetIndexBuffer
calls, while setup resource barriers are still cached insideResource
object.Resource::State
andResource::Barriers
types were moved to the public header files and split fromResource
interface definition.CommandKit
interface was added to Graphics Core to provide unified access fromContext::GetDefaultCommandKit
to the command queue, command lists, command list set and synchronization fences made for working together with the sameCommandList::Type
. This interface allowed to replace methodsContext::GetUploadCommandQueue
,Context::GetUploadCommandList
,Context::GetUploadCommandListSet
andRenderContext::GetRenderCommandQueue
withContext::GetDefaultCommandKit
.CommandList
changes:CommandList::SetResourceBarriers(...)
call was added to the public interface (was private before).RenderCommandList
changes:RenderCommandList::SetIndexBuffers
method was adedd, index buffer is now set separately fromDrawIndexed
call.RenderCommandList::Set[Index|Vertex]Buffers
methods were exnteded with an optional argument which allows to disable setting resource barriers automatically.ParallelRenderCommandList
changes:ImageLoader
not initializes texture names insideLoad
functions.Device
andContext
references passed to core interface factory functions.