Subversion Repository Public Repository


This repository has no backups
This repository's network speed is throttled to 100KB/sec

Commits for Divide-Framework/trunk/Source Code/Platform/Video/Direct3D/Buffers/ShaderBuffer/d3dConstantBuffer.cpp

Diff revisions: vs.
Revision Author Commited Message
895 Diff Diff IonutCava picture IonutCava Wed 21 Jun, 2017 21:10:26 +0000

- Reorder and cleanup OpenGL backend a bit.
- Small code cleanup
- Some small profile-guided optimizations

893 Diff Diff IonutCava picture IonutCava Sun 18 Jun, 2017 17:33:07 +0000

- Initial implementation of a PipelineStateObject (holds shader program, rasterizer state, etc)
- Rework PCH implementation a bit because VS2017 no longer has a /ZM option

890 Diff Diff IonutCava picture IonutCava Sun 14 May, 2017 20:54:59 +0000

- Add pre-compiled header support
- Initial code for per-stage tessellation computation

827 Diff Diff IonutCava picture IonutCava Sun 22 Jan, 2017 21:59:36 +0000

- ShaderBuffers now decide heuristically if they get persistently mapped or not (depends on size. Current limit is 512Kb for subData calls.
- Separate visible node command generation into 2 steps: onRender and getDrawPackage. onRender allows the creation of parallel tasks that should finish by the time the second call, getDrawPackage reaches the same node
- Update ParticleEmitter to take into account multiple players and increase parallelism at the cost of memory consumption and complexity.
- Add a default bounding box for Players (add extents to SceneTransform nodes)
- All buffers (ShaderBuffer, d3dConstantBuffer, glUniformBuffer, glBufferImpl, glGenericBuffer, etc) use BufferParams for creation.
— Constructor and create calls have been merged together

807 Diff Diff IonutCava picture IonutCava Mon 09 Jan, 2017 17:06:26 +0000

- Split PlatformDefines.h into 2. Move data type defines to PlatformDataTypes.h
- Continue to improve velocity map calculation
- Remove “destroy()” calls from most classes. Attempt to move as many classes to the RAII system.

727 Diff Diff IonutCava picture IonutCava Tue 14 Jun, 2016 16:01:38 +0000

- Remove node and cmd buffers from GFXDevice and add them as a new BufferData struct to RenderPass class.
— Each render pass holds its own buffers
- Improvements / fixes to the CSM code
- Added a global toggle to enable/disable custom memory allocators

671 Diff Diff IonutCava picture IonutCava Fri 08 Apr, 2016 16:26:49 +0000

- Custom memory allocation system part 1:
— Add
— Add custom allocators to strings and vectors
— Add custom allocators to a few test classes
— No support for aligned memory yet, so vec4<F32> and mat4<F32> vectors use the old allocation system
- Replace more std::async call with our custom task system

631 Diff Diff IonutCava picture IonutCava Sun 24 Jan, 2016 20:28:21 +0000

- Fix and optimize particle rendering system
- Temporarily disable Z_PRE_PASS system for testing
- Improve thread pool destruction system a bit
- Fix texture loading when used as fb attachment
- Forward+ renderer now takes the entire light buffer (no need to split up by light type)
- Start work on occlusion culling fixes:
— ToDo: Take into account batching system
— Fix gl_DrawIDARB usage

591 Diff Diff IonutCava picture IonutCava Wed 02 Dec, 2015 17:17:23 +0000

- More work on the ForwardPlus renderer
- Singleton cleanup
- First steps for reducing scope of GFXDevice class

588 Diff Diff IonutCava picture IonutCava Mon 30 Nov, 2015 17:11:02 +0000

- More work on the Forward+ renderer

542 Diff Diff IonutCava picture IonutCava Thu 29 Oct, 2015 23:44:59 +0000

- Improved multi-threaded culling
- Increased nodeBuffer size to avoid different render stages to override each-other’s data and wait for locks
- Added a indirect command buffer per render stage

528 Diff Diff IonutCava picture IonutCava Mon 19 Oct, 2015 15:53:19 +0000

- Fix occlusion culling
- Fix blur shader
- Fix particle rendering
- Fix ShaderBuffer class function naming

527 Diff Diff IonutCava picture IonutCava Fri 16 Oct, 2015 16:01:06 +0000

- EXPERIMENTAL Added Compute based HiZ occlusion culling
- Some fixes to shader line counting system

524 Diff Diff IonutCava picture IonutCava Thu 08 Oct, 2015 16:14:58 +0000

- Profiler guided optimizations:
— Replace most hashMaps with vectors where the common access pattern is linear (e.g. SceneGraphNode’s child list)
— Specify ShaderBuffer access patters at creation time to properly inform the rendering API
— Fix and optimise the LockManager & BufferLockManager classes
— Add a AtomicWrapper class that allows assignment and copy-constructions for atomic variables
-— This allows us to use vector of atomic bools for BB creation for SkinnedSubMesh objects

502 Diff Diff IonutCava picture IonutCava Sun 23 Aug, 2015 18:03:16 +0000

- Micro-optimise the rendering path (faster compares, less stack allocation, etc)

499 Diff Diff IonutCava picture IonutCava Thu 20 Aug, 2015 21:22:10 +0000

- UBO/SSBO proper alignment fixed (finally)
- ShaderBuffer class cleanup

406 Diff Diff IonutCava picture IonutCava Tue 21 Apr, 2015 16:08:54 +0000

- More clean-up in the SceneAnimator class
- Added a hacky workaround to render skeletons only once per mesh (flag in parent mesh set from the rendering submesh using the StateTracker available in the SceneGraphNode class)

391 Diff Diff IonutCava picture IonutCava Sun 29 Mar, 2015 20:28:02 +0000

- Performance improvements:
— Modified GLIM to perform a pre-pass + reserve mem when gathering vertex data (position + attributes) before uploading it to the GPU. Attributes and positions are added to a 4byte per element vector then uploaded in bulk using insert that does a lot of memory allocations in the background. The pre-pass reserves memory up-front
— Changed the animation data upload from a double-buffered approach to a single-buffer 3x data size round-robin mechanism. This required several changes to UBO/SSBOs:
-— Padding is added on bind/create/update etc to align ranges with the UBO alignment returned by OpenGL
-— All ranges are now expressed in number of primitives instead of number of bytes to simplify the public interface
- Removed an old debug prinfn callback
- Fixed a bug when only one single node is visible (offset != range check on UBOs was wrong)
- ShaderBuffer info in RenderPackage now takes an offset and a range to bind the buffer (instead of just the location)

382 Diff Diff IonutCava picture IonutCava Sun 22 Mar, 2015 21:04:05 +0000

- Re-enabled persistently mapped buffered
- Worked around various Material issues with shader generation
- Fixed a buffer destruction issues in GFXDevice (shade buffers deleted after the rendering context was destroyed)

379 Diff Diff IonutCava picture IonutCava Thu 19 Mar, 2015 17:13:02 +0000

- More batching work:
— Implemented a RenderQueue where all draw commands are gathered but only sent to the GPU on a “flush” command. (currently, one flush per render bin pass)
— RenderQueue holds RenderPackage (former NodeRenderData) and tries to batch the draw commands into the previous package if ShaderBuffer and TextureData between the 2 packages is compatible (currently disabled as some ShaderBuffer rendering glitches appear with animated data)
— RenderingComponent looses the “render” member as rendering commands are queued and postDraw calls are delegated to the renderbin pass

364 Diff Diff IonutCava picture IonutCava Fri 06 Mar, 2015 16:55:21 +0000

- Part 1 of type safe enum replacement (does not compile)

363 Diff Diff IonutCava picture IonutCava Thu 05 Mar, 2015 22:37:12 +0000

- More work on OpenGL memory management

362 Diff Diff IonutCava picture IonutCava Thu 05 Mar, 2015 17:10:19 +0000

- Initial part of OpenGL memory refactoring

357 Diff Diff IonutCava picture IonutCava Thu 26 Feb, 2015 17:10:02 +0000

- Logic error fix in ParticleEmitter.cpp
- Some persistent buffer mapping cleanups/fixes
- More raw pointer replacements with unique_ptr

350 IonutCava picture IonutCava Tue 10 Feb, 2015 16:25:39 +0000

- Simplified some Util-namespace level functions by using STL algorithms where possible
- Formatted the entire codebase using clang-format with the following style: "{BasedOnStyle: Google, IndentWidth: 4}"
- Attempted to make ProfileTimer thread-safe (temp fix until std::chrono works properly in Visual Studio)