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-08Clay: Improve loading time.Clément Foucault
Only compile hair shader if we need it.
2018-04-08Eevee: Reduce loading time.Clément Foucault
Only compile the needed shadow shaders to reduce the startup time. Theses shaders is taking forever to compile on intel (~5s each).
2018-04-08DRW: Profiling: Batch BLF strings and add shadowingClément Foucault
Shadows makes it more readable and are relatively cheap now.
2018-04-05Remove workspace object mode, reverts changes w/ 2.8Campbell Barton
This caused too many problems syncing object modes with multiple objects/windows/workspaces, see: D3130 for details.
2018-04-04Fix Eevee crash with generated coordinates on non-objects.Brecht Van Lommel
2018-04-04Cleanup: simplify fix for T53497, this part is not strictly needed.Brecht Van Lommel
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-30DRW: Add BLF_batch_reset to be able to use BLF inside DRW.Clément Foucault
2018-03-29EEVEE: Fix bad framebuffer configurationClément Foucault
Was causing black / corrupted scene because of broken downsample Add a debug check to not run into this problem again.
2018-03-29Cleanup, silence compiler warning in release buildSergey Sharybin
2018-03-29Draw manager: Make particle code drawing closer to old viewportSergey Sharybin
The way how particle state is to be accessed or used did not change in Blender 2.8, so the drawing code should follow old design. This code is somewhat duplicated from drawobject.c, but old draw code is on the way to be removed anyway. This fixes issue with disappearing particles when tweaking number of particles.
2018-03-29Draw manager: Make evaluation context a part of context stateSergey Sharybin
This way we don't have to re-initialize the full evaluation context in every area we need it.
2018-03-29Draw manager: Use C99 struct initializationSergey Sharybin
Allows us to easily add fields which we never want to be initialized, but still keep sane order of fields in the structure itself.
2018-03-29Draw manager: Use utility functions for dealing with state memsetSergey Sharybin
2018-03-29Draw manager: Cleanup, early outputSergey Sharybin
Do early output and reduce level of indentation.
2018-03-28Clay: Remove warning.Clément Foucault
2018-03-28DRW: Opti: Make cursor use batch instead of immediate API.Clément Foucault
This is also much cleaner and taking 1 drawcall instead of 2.
2018-03-27Eevee Shaders: Fix "No matching overloaded function"Germano
invert -> inverse
2018-03-26Eevee: Use named EEVEE_EffectsFlag for effects flag.Clément Foucault
2018-03-26Eevee: Fix feedback loop warning.Clément Foucault
2018-03-25DRW: Fix crash/broken Metaballs display.Clément Foucault
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-25DRW: Remove mentions of DRWInterface.Clément Foucault
Theses are no longer relevant. Better talk about shgroup directly.
2018-03-25GPUFramebuffer: Refactor (Part 2)Clément Foucault
This refactor modernise the use of framebuffers. It also touches a lot of files so breaking down changes we have: - GPUTexture: Allow textures to be attached to more than one GPUFrameBuffer. This allows to create and configure more FBO without the need to attach and detach texture at drawing time. - GPUFrameBuffer: The wrapper starts to mimic opengl a bit closer. This allows to configure the framebuffer inside a context other than the one that will be rendering the framebuffer. We do the actual configuration when binding the FBO. We also Keep track of config validity and save drawbuffers state in the FBO. We remove the different bind/unbind functions. These make little sense now that we have separate contexts. - DRWFrameBuffer: We replace DRW_framebuffer functions by GPU_framebuffer ones to avoid another layer of abstraction. We move the DRW convenience functions to GPUFramebuffer instead and even add new ones. The MACRO GPU_framebuffer_ensure_config is pretty much all you need to create and config a GPUFramebuffer. - DRWTexture: Due to the removal of DRWFrameBuffer, we needed to create functions to create textures for thoses framebuffers. Pool textures are now using default texture parameters for the texture type asked. - DRWManager: Make sure no framebuffer object is bound when doing cache filling. - GPUViewport: Add new color_only_fb and depth_only_fb along with FB API usage update. This let draw engines render to color/depth only target and without the need to attach/detach textures. - WM_window: Assert when a framebuffer is bound when changing context. This balance the fact we are not track ogl context inside GPUFramebuffer. - Eevee, Clay, Mode engines: Update to new API. This comes with a lot of code simplification. This also come with some cleanups in some engine codes.
2018-03-25Basic Engine: Remove unneeded use of Framebuffers.Clément Foucault
2018-03-25Clay: Fix alpha problem cause by FXAA pass.Clément Foucault
2018-03-25GPUTexture: Small refactor.Clément Foucault
This includes a few modification: - The biggest one is call glActiveTexture before doing any call to glBindTexture for rendering purpose (uniform value depends on it). This is also better to know what's going on when rendering UI. So if there is missing UI elements because of this commit look for this first. This allows us to have "less calls" to glActiveTexture (I did not measure the final count) and less checks inside GPU_texture. - Remove use of GL_TEXTURE0 as a uniform value in a few places. - Be more strict and use BLI_assert for bad usage of GPU_texture functions. - Disable filtering for integer and stencil textures (not supported by OGL specs). - Replace bools inside GPUTexture by a bitflag supporting more options to identify texture types.
2018-03-25DRWTexture: Remove DRW_texture_updateClément Foucault
2018-03-25DRW: Remove unecessary push/pull attrib.Clément Foucault
Since we are rendering draw manager's command in a separate context, we don't need to save/restore the UI opengl state attributes/config.
2018-03-22GPUCompositing: Remove entire module.Clément Foucault
This module has no use now with the new DrawManager and DrawEngines and it is using deprecated paths. Moving gpu_shader_fullscreen_vert.glsl to draw/modes/shaders/common_fullscreen_vert.glsl
2018-03-21Eevee: Fix missing camera animation with CoWSergey Sharybin
2018-03-21Draw manager: Fix missing active camera triangle with CoWSergey Sharybin
2018-03-20DRW: Fix bound_ubo_slots allocation size.Clément Foucault
2018-03-20DRW: Fix ubo binding code.Clément Foucault
2018-03-17Eevee: Volumetrics: Fix crash when using smoke volumes.Clément Foucault
2018-03-17DRW: Fix error in texture binding / unbinding.Clément Foucault
2018-03-17GWN: Vertex Buffer refactor.Clément Foucault
We now alloc a vbo id on creation and let OpenGL manage its memory directly. We use glMapBuffer to get this memory location. This enables us to reuse and modify any vertex buffer directly without destroying it with its associated Batches. This commit does not really improve performance but will let us implement more optimizations in the future. We can also resize the buffer even if this can be slow if we need to keep the existing data. The addition of the usage hint makes dynamic buffers not a special case anymore, simplifying things a bit.
2018-03-17DRW: Move cache time to GPUViewport for profilingClément Foucault
This enables us to average this timer over time like the others.
2018-03-16Eevee: Add warning comment about ubo/texture persistence.Clément Foucault
More info on bindings persistence here : 8a692da7f81d8b0798f4aeebaa4a1123693fc279
2018-03-16Clay: Small cleanup.Clément Foucault
Use persistent binds for the texture and UBOs. Remove use of stencil.
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-16Code cleanup: fix various compiler warnings on clang/macOS.Brecht Van Lommel
2018-03-15Mesh: Batch cache: Fix sculpt update issue.Clément Foucault
Old solution was to create a new vbo and copy it to the location of the old vbo hoping for the batches to update their vaos before drawing. The issue is that the new VAO caching is not updating the VAOs at all unless the shader interface changes. So unless we expand gawain to support updating of vertex buffers (in a better way than the current "dynamic" buffer) we need to delete every batch linked to the vbo we want to recreate. This solution might have performance implications.
2018-03-14Clay: Add FXAA.Clément Foucault
I tried to use real multisampling but the main problem is the outline detection that needs to have matching depth samples. So adding FXAA instead. Always on for now, may add a parameter for it later. One thing to note is that we need to copy the final output once again to the main color buffer because we cannot swap the dtxl textures (they can be referenced elsewhere like GPUOffscreen). We could improve upon this and add TAA on top if viewport is still.
2018-03-14GPUViewport: Fix offscreen multisample syncing.Clément Foucault
2018-03-14Clay: Refactor: Port clay to a deferred pipeline.Clément Foucault
This means that rendering clay with AO only needs 1 geometry pass. Thus greatly improving performance of poly heavy scene. This also fix a self shadow issue in the AO, making low sample count way better. We also do not need to blit the depth anymore since we are doing a fullscreen shading pass. The constant cost of running the a deferred shading pass is negligeable. This include quite a bit of code cleanup inside clay_engine.c. The deferred pipeline is only enabled if at least one material needs it. Multisampling is not supported yet. Small hacks when doing deferred: - We invert the normal before encoding it for precision. - We put the facing direction into the sign of the mat_id. - We dither the normal to fight the low bitdepth artifacts of the normal buffer (which is 8bits per channel to reduce bandwidth usage).
2018-03-14DRW: Add DRW_viewport_invert_size_get for more ease of use.Clément Foucault
2018-03-14GPUTexture: Unlock GL_R16I format.Clément Foucault