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-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
2018-03-14Eevee: Fix sequencer rendering.Clément Foucault
Sequencer rendering can use multisample render targets. Be sure to sync thoses after rendering. Also disable the sample loop when not needed. Do note that currently the color correction is broken with the sequencer.
2018-03-13Eevee: Render: Add Info messages.Clément Foucault
2018-03-13Eevee: Render: Allow cancel during probe update.Clément Foucault
2018-03-13Eevee: Render: Fix softlock if rendering before lazy shader compil ends.Clément Foucault
Calling the rendering operator seems to kill any other WM_job running, leaving uncompiled materials into a GPU_MAT_QUEUED state. This then made the probe update looping indefinitely (all_materials_updated remaining to false). To fix this, we resume compilation for materials that are in this state. Cancelling Render before all material compilation could make certain material remain uncompiled. Fortunately, this is not allowed as of now.
2018-03-13Eevee: Fix temporal sampling not resetting.Clément Foucault
World Probe update was not resetting the TAA. This also reset the volume sampling in cases that needs it (world/grid probe diffuse coefs update).
2018-03-13Eevee: Fix bad Outlines after probe updates.Clément Foucault
This was because the default matrices were not setup back after resetting the current TAA sample.
2018-03-12GPUMaterial: Add Material shader cache.Clément Foucault
This is mostly to avoid re-compilation when using undo/redo operators. This also has the benefit to reuse the same GPUShader for multiple materials using the same nodetree configuration. The cache stores GPUPasses that already contains the shader code and a hash to test for matches. We use refcounts to know when a GPUPass is not used anymore. I had to move the GPUInput list from GPUPass to GPUMaterial because it's containing references to the material nodetree and cannot be reused. A garbage collection is hardcoded to run every 60 seconds to free every unused GPUPass.
2018-03-12Eevee: SSS: Fix compilation error.Clément Foucault
2018-03-10Eevee: Planar Reflections: Fix corrupted results in downsampling step.Clément Foucault
It only seems to happen in some drivers/gpu, the vertices gets culled if 4th component is 0.0. So lesson learned: always use 1.0 if constant.
2018-03-10Eevee: Planar Reflection: Add refraction support for reflected objects.Clément Foucault
2018-03-10Eevee: Add new clipping UBO.Clément Foucault
This fixes problems with the planar reflections.
2018-03-10Eevee: Make use of the new view matrix UBO.Clément Foucault
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: Add assert for uniform that needs valid data.Clément Foucault
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-10Eevee: Probes: Fix last planar reflections remaining after deletion.Clément Foucault
2018-03-10Eevee: Probes: Add culling for planar probes.Clément Foucault
Planar probes that have no influence on pixels in the view are culled. This greatly improve performance when theses probes are offscreen.
2018-03-10DRW: Culling: Expose & Add culling functions to engines.Clément Foucault
This way engines can do preemptive culling by themselves.
2018-03-10Eevee: Render: Add cancel supportClément Foucault
You can now cancel your renders that are too long. This will still output the current status of the render. For example if you cancel at 50% rendering progress, you will have a render result with only half the render samples.
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-10Eevee: Planar: Add transparent objects.Clément Foucault
The ordering is left broken for the viewport as this can be quite heavy. Only do it if doing a render.
2018-03-10Eevee: Planar Probe: Add supersampling jitter.Clément Foucault
This also fix a bug with the probe debug display when there was more than 2 probes. ped->probe_id was equal to 0 for all planar probes until the next frame. Resulting in all planar data debug to show probe 0.
2018-03-09Cleanup: iterator macrosCampbell Barton
- put render iterator in own scope (would shadow it's own variable if used multiple times). - enforce semicolon at end of iterator macros. - no need to typedef one-off macro structs.
2018-03-08Eevee: Render: Add progress.Clément Foucault
2018-03-08Eevee: Save and reset matrixstate for probe rendering.Clément Foucault