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
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-03Cleanup: trailing commasCampbell Barton
Needed for clan-format not to wrap onto one line.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-29Cleanup: replace attrib w/ attrCampbell Barton
Also rename GPUVertexAttribs to GPUVertAttrLayers, avoids confusion with GPUVertAttr which isn't closely related.
2019-01-23Cleanup: use eGPU prefix for GPU enum typesCampbell Barton
2019-01-17GPU: Rename GPU_shader_get_uniform to GPU_shader_get_uniform_ensureClément Foucault
This is in order to make the API more multithread friendly inside the draw manager. GPU_shader_get_uniform will only serve to query the shader interface and not do any GL call, making it threadsafe. For now it only print a warning if the uniform was not queried before.
2018-12-24Fix/cleanup another bunch of UI messages issues.Bastien Montagne
Also (mostly in comments): behaviour -> behavior (we use American English).
2018-11-08Eevee: Fix broken Vector Transform nodeClément Foucault
The Camera to Object space matrix was not implemented in gpu_codegen.
2018-11-07GPU: Fix wrong socket value structClément Foucault
This was causing bad behavior of the node Normal.
2018-11-01Eevee: Fix nodegroup sockets behaviourClément Foucault
Node group inputs should behave like cycles now. ---- We create dummy nodes that contains the default values for the nodegroup inputs and link them to the sockets. This way the uniform buffer gathering function can read them. But we also need to disconnect all the internal links to sockets that have hidden values. Theses sockets must not get the values from the nodegroup input sockets if there is no link to them otherwise we get broken results (i.e.: normals for a bsdf node).
2018-10-09Eevee: Add support/Fix Object Info nodeClément Foucault
Caveat: Random output does not yet work with instance (dupli) objects.
2018-09-24Spelling fixes in comments and descriptions (2.8 changes), patch by luzpaz.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D3719
2018-09-20GPUCodegen: Remove unnecessary GLEW_VERSION_3_0 checksClément Foucault
2018-09-20Eevee: Implement Wireframe NodeClément Foucault
This implementation is a bit hacky but match cycles pretty close. If pixel size is not enabled, it will use the geom shader to compute distances between vertices. This will have a cost. Implementation is a bit hacky in gpu_codegen to make the geom shader works in an optional manner.
2018-09-19Cleanup: Remove "_new" from GPU_generate_pass_newClément Foucault
Not needed anymore since old one has been deleted.
2018-09-19Merge branch 'master' into blender2.8Campbell Barton
2018-09-19BLI_utildefines: rename pointer conversion macrosCampbell Barton
Terms get/set don't make much sense when casting values. Name macros so the conversion is obvious, use common prefix for easier completion. - GET_INT_FROM_POINTER -> POINTER_AS_INT - SET_INT_IN_POINTER -> POINTER_FROM_INT - GET_UINT_FROM_POINTER -> POINTER_AS_UINT - SET_UINT_IN_POINTER -> POINTER_FROM_UINT
2018-09-19Cleanup: styleCampbell Barton
2018-09-18GPUShader: Manually validate sampler countClément Foucault
This happens on NVidia GPUs, using more textures than the maximum allowed by the gl will NOT trigger a linking issue (maybe because of bindless texture implementation?). So in this case we manually count the number of samplers per shader stage and compare it against the GL limit. We discard the shader if the sampler count is too high. This shows the user something is wrong with the shader.
2018-09-12GPU: Remove residue of OpenSubdivSergey Sharybin
Was done more like a hack on top of old drawing pipeline. Should be re-implemented to fit new draw manager closer.
2018-09-12Cleanup: use uint/uchar types in GPUCampbell Barton
2018-08-22GPU: Fix issue with multiple Geometry node.Clément Foucault
2018-08-22GPUMaterial: Geometry Node: Add support for parametric outputClément Foucault
This supports meshes and hairs too. Matches cycles output. This adds barycentric coords to the GPUBuiltin enum which will also be used for the wireframe node.
2018-08-14GPUShader: Remove some of the unused shadersClément Foucault
keeping GPU_SHADER_SMOKE until other occurences are removed.
2018-08-14Cleanup: GPU codegen: remove most of legacy codeClément Foucault
A lot of code in codegen was used by previous GLSL system. Now most of it is not used due to all the things being written from scratch in 2.8 and we can clean most of it. As a side not this make the system a bit less flexible (no support for cubemaps, preview image, etc...) but can be extended again.
2018-08-14Cleanup: Rename GPU_* functions to make more senseClément Foucault
* Remove GPU_link_changed which is unused. * Remove all GPU link function that are not used anymore. * GPU_uniform_buffer is now GPU_uniform. * GPU_texture_ramp is now GPU_color_band. * GPU_uniform is now GPU_constant.
2018-08-10GPUMaterial: Group all colorband texture togetherClément Foucault
This lower the use of texture samplers slots and let users use more real textures in their shaders. This patch also make the ramp texture 16 bit floating point. Meaning you can now use value greater than one in your color ramps. With the limit of 128 colorband per shader (a color band being either a color ramp, a wavelength node or a curve node (and maybe wavelength node in the future)). Only drawback with the current implementation is that it does not remove colorband from pruned GPUNodes but it shouldn't really matter in practice. This should fix T56010
2018-08-08GPUMaterial: Fix Material appear broken when using sliders to tweak propsClément Foucault
This was likely caused by some sort of race condition where the drawing thread would request the state of the shader before the shader has been compiled.
2018-08-02GPUShader: Add name for debugging & identifying shaders.Clément Foucault
2018-07-18Cleanup: style for GPU moduleCampbell Barton
2018-07-18GWN: Port to GPU module: Replace GWN prefix by GPUClément Foucault
2018-07-02Commit D3494 : Compiled shader lookup fixClément Foucault
Authored by Pavel Rudko (PavelRudko) on Thu, Jun 21, 10:41 AM. Original description: I've encounterd into a problem with blender 2.8. See the example screenshot (scene, shader setup). For some materials it's not enough to calculate hash based on fragment code and defines. In some cases attribute names may change. And if we change uv set name, for example, vertex shader is not recompiled, and another attribute name inside it is used.
2018-06-29Cleanup: trailing newlinesCampbell Barton
2018-06-14Cleanup: remove legacy GPU pass binding code.Brecht Van Lommel
2018-06-13Merge branch 'master' into blender2.8Brecht Van Lommel
This includes making Eevee match Cycles behavior of inserting an emission node when linking colors to closures.
2018-06-07Rename GPU_material_create_uniform_buffer > GPU_material_uniform_buffer_createDalai Felinto
2018-06-07GLSL: No need to extract the UBO dynamic inputsDalai Felinto
2018-06-07GPUPass: Refactor gpupass caching system to allow fast gpumaterial creation.Clément Foucault
This is part of the work needed to refactor the material parameters update. Now the gpupass cache is polled before adding the gpumaterial to the deferred compilation queue. We store gpupasses in a single linked list grouped based on their hashes. This is not the most efficient way but it can be improved upon later.
2018-06-04Merge branch 'master' into blender2.8Campbell Barton
2018-06-04 Cleanup: strip trailing space in GPU moduleCampbell Barton
2018-05-30GPUMaterial: Add support for hair vertex color, uvs and orco.Clément Foucault
2018-05-02Eevee: Fix vertex color being in srgb space.Clément Foucault
Now they are properly converted to Linear space before interpolation. Since the only way to get vertex color in eevee and cycles is via the attribute node with the CD_AUTO_FROM_NAME flag, we have to know at binding time which type of buffer will be connected to this auto input. We store this information inside the batch cache (together with the according uniform name) and pass it as uniform to the shader which does conversion if needed. The same shader can then be reused to draw another mesh with different auto layers configuration.
2018-04-30DRW: Remove DRWTextureFormat in favor or GPUTextureFormat.Clément Foucault
Because: - Less redundancy. - Better suffixes. Also a few modification to GPU_texture_create_* to simplify the API: - make the format explicit to the texture creation process. - remove the component count as it's specified in the GPUTextureFormat.
2018-04-19Remove Blender Internal and legacy viewport from Blender 2.8.Ton Roosendaal
Brecht authored this commit, but he gave me the honours to actually do it. Here it goes; Blender Internal. Bye bye, you did great! * Point density, voxel data, ocean, environment map textures were removed, as these only worked within BI rendering. Note that the ocean modifier and the Cycles point density shader node continue to work. * Dynamic paint using material shading was removed, as this only worked with BI. If we ever wanted to support this again probably it should go through the baking API. * GPU shader export through the Python API was removed. This only worked for the old BI GLSL shaders, which no longer exists. Doing something similar for Eevee would be significantly more complicated because it uses a lot of multiplass rendering and logic outside the shader, it's probably impractical. * Collada material import / export code is mostly gone, as it only worked for BI materials. We need to add Cycles / Eevee material support at some point. * The mesh noise operator was removed since it only worked with BI material texture slots. A displacement modifier can be used instead. * The delete texture paint slot operator was removed since it only worked for BI material texture slots. Could be added back with node support. * Not all legacy viewport features are supported in the new viewport, but their code was removed. If we need to bring anything back we can look at older git revisions. * There is some legacy viewport code that I could not remove yet, and some that I probably missed. * Shader node execution code was left mostly intact, even though it is not used anywhere now. We may eventually use this to replace the texture nodes with Cycles / Eevee shader nodes. * The Cycles Bake panel now includes settings for baking multires normal and displacement maps. The underlying code needs to be merged properly, and we plan to add back support for multires AO baking and add support to Cycles baking for features like vertex color, displacement, and other missing baking features. * This commit removes DNA and the Python API for BI material, lamp, world and scene settings. This breaks a lot of addons. * There is more DNA that can be removed or renamed, where Cycles or Eevee are reusing some old BI properties but the names are not really correct anymore. * Texture slots for materials, lamps and world were removed. They remain for brushes, particles and freestyle linestyles. * 'BLENDER_RENDER' remains in the COMPAT_ENGINES of UI panels. Cycles and other renderers use this to find all panels to show, minus a few panels that they have their own replacement for.
2018-04-09GPU Codegen: Fix assert caused by GC of failled shaders.Clément Foucault
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-06DRW: Deferred compilation initial implementation.Clément Foucault
2018-02-23GPU: fixes for string socket types in shader nodes.Brecht Van Lommel
These are not passed to GLSL functions, but should be used to load e.g. a texture or attribute.
2018-02-23Eeevee: add temperature grid support, make color grid unpremultiplied.Brecht Van Lommel
This matches similar changes done for Cycles.
2017-11-28Eevee: Fix T53413: Crash when using displacement bump relink.Clément Foucault
ntree_shader_relink_displacement is creating a transient node that does not have a correct original to point to. In this case we revert to constant uniform.