Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-21Cleanup: styleCampbell Barton
2018-04-19Cleanup: styleCampbell Barton
2018-04-17DRW: Perf: Early out empty passes.Clément Foucault
2018-04-17DRW: Add DRW_UNIFORM_INT_COPY.Clément Foucault
This allow to use int uniforms that are not references. Convenient for ids.
2018-04-16DRW: Fix outdated code.Clément Foucault
2018-04-16DRW/GWN: Add callId builtin uniform.Clément Foucault
This uniforms can be used to have a unique id for each drawcall of a shgrp. This only works for standard shgroups and is an exception for the outline drawing.
2018-04-16DRW: Culling: Fix algorithm for asymmetric perspective frustum reconstruction.Germano
2018-04-16Fix T54491: Do not avoid the creation of inverted frustum.Germano
Blender allows this. The Cube in the file in the report would always disappear with the non camera view. The clip_end was too small. The correction here is only on the assert.
2018-04-16DRW: Culling: Reorganize frustum_boundbox_calc to match comments.Germano
And Cleanup.
2018-04-16Fix unreported error: Algorithm for extracting the Bounding Sphere from an ↵Germano
Orthographic frustum was incorrect. There was double transformation.
2018-04-16Fix rBb31ebd8c5c55: the asymmetric furstrum algorithm was still incorrect.Germano
Although somewhat less micro efficient, I decided to separate the `viewinv` matrix to calculate the world position separately. This makes it easier to understand the code.
2018-04-16Fix T54609: Erros in precise BBox extraction algorithmGermano
2018-04-16Cleanup: unused functionCampbell Barton
2018-04-15DRW: Fix culling algorithm for cascade shadow maps.Clément Foucault
draw_frustum_boundbox_calc does not work properly it seems in this case.
2018-04-04Fix part of T53497: Eevee stuttering on macOS for the first few seconds of ↵Brecht Van Lommel
usage. The problem was that textures were assigned to different slots on different draw calls, which caused shader specialization/patching by the driver. So the shader would be compiled over and over until all possible assignments were used.
2018-04-03Draw Manager: Improve description of `draw_frustum_boundbox_calc` variablesGermano
2018-04-02Partial fix for T54491: Use a more accurate solution to calculate the ↵Germano
frustum boundbox
2018-03-25DRW: Rename DRW_shgroup_uniform_buffer into DRW_shgroup_uniform_texture_refClément Foucault
This is in order to not mix it with the incomming buffer textures.
2018-03-20DRW: Fix ubo binding code.Clément Foucault
2018-03-17DRW: Fix error in texture binding / unbinding.Clément Foucault
2018-03-16DRW: Fix/refactor UBO & Texture binding.Clément Foucault
Previous approach was not clear enough and caused problems. UBOs were taking slots and not release them after a shading group even if this UBO was only for this Shading Group (notably the nodetree ubo, since we now share the same GPUShader for identical trees). So I choose to have a better defined approach: - Standard texture and ubo calls are assured to be valid for the shgrp they are called from. - (new) Persistent texture and ubo calls are assured to be valid accross shgrps unless the shader changes. The standards calls are still valids for the next shgrp but are not assured to be so if this new shgrp binds a new texture. This enables some optimisations by not adding redundant texture and ubo binds.
2018-03-10DRW: Change UBOs binding logic.Clément Foucault
Use the same logic than textures. Also reset bindings only on shader changes.
2018-03-10DRW: Change clip planes API.Clément Foucault
The draw manager now just set the number of active clip planes. It's now up to the engine to specify the plane equations as uniform/ubo/constant.
2018-03-10DRW: Put all view-only dependant uniform in a UBO.Clément Foucault
This leads to less lookups to the GWNShaderInterface and less uniform upload. We still keep a legacy path so that Builtin uniforms can still work. We might restrict this path to Builtin shader only in the future.
2018-03-10DRW: Culling: Expose & Add culling functions to engines.Clément Foucault
This way engines can do preemptive culling by themselves.
2018-03-10DRW: Culling: Fix precision error.Clément Foucault
This was triggering the BLI_assert(fac >= 0.0f);. Clamp fac to ensure correct value for release builds.
2018-03-08Eevee: Save and reset matrixstate for probe rendering.Clément Foucault
2018-03-08DRW: Fix culling with inverted view (planar reflections)Clément Foucault
Just invert the frustum planes in this case.
2018-03-07Draw Manager: Simplify the algorithm that extract the BoundingSphere of a ↵Germano
Frustum The idea is to separate the most common case from symmetrical frustum. And to make a simple but efficient calculation. The new radius is usually 98% the size of the radius size of the asymmetric solution. Thanks to @fclem for reviewing the patch on IRC
2018-03-06DRW: Fix broken grid in ortho view.Clément Foucault
2018-03-06DRW: Fix occlusion culling.Clément Foucault
2018-03-02DRW: Add DRWMatrixState to manage all matrices together.Clément Foucault
2018-03-02DRW: Refactor simple instancing.Clément Foucault
Instead of creating a new instancing shading group without attrib, we now have instancing calls. The benefits is that they can be culled. They can be used in conjuction with the standard and generate calls but shader must support it (which is generally not the case). We store a pointer to the actual count so that the number can be tweaked between redraw. This will makes multi layer rendering more efficient.
2018-03-02Correct draw manager locking flag checkCampbell Barton
Error in eeae50fc1c8, thanks @mano-wii for spotting
2018-03-01DRW: add ability to lock states from changingCampbell Barton
Selection code relies on being able to set the depth functions however passes have their own depth settings. Add DRW_state_lock to ignore passes settings for particular flags. This fixes occlusion queries cycling through objects under the cursor.
2018-03-01DRW: Initial implementation of Frustum culling.Clément Foucault
This is very efficient and add a pretty low overhead (0.1ms of drawing time for 10K objects passing through all tests, on my i3-4100M). The like the rest of the DRWCallState, test is "cached" until the view matrices changes.
2018-03-01DRW: Codestyle: Remove DRWCallHeader and DRWCallGenerateClément Foucault
2018-03-01DRW: Reuse DRWCallState for the same object.Clément Foucault
This enables caching the matrices and reducing redraw time of the same object which is particulary important for eevee.
2018-03-01DRW: Merge calls_generate pool with calls pool & add DRWCallState pool.Clément Foucault
2018-02-28DRW: Fix broken particle drawing.Clément Foucault
Was caused by GPU_SELECT_LOAD_IF_PICKSEL_LIST not iterating at all if shgroup->instance_count == 0.
2018-02-28DRW: Refactor & Split draw_manager.c into multiple files.Clément Foucault
Refactor include: - Removal of DRWInterface. (was useless) - Split DRWCallHeader into a new struct DRWCallState that will be reused in the future. - Use BLI_link_utils for APPEND/PREPEND. - Creation of the new DRWManager struct type. This will enable us to create more than one manager in the future. - Removal of some dead code.