Age | Commit message (Collapse) | Author |
|
|
|
Use doxy references to function and enums,
also correct some names which became out of sync.
|
|
|
|
|
|
Work around bug in the Intel driver:
https://software.intel.com/en-us/forums/graphics-driver-bug-reporting/topic/550740
|
|
|
|
Move free callback call to GPU_batch_discard to prevent the crash.
The issue was that clearing can happen after referencing to an instance
buffer and that's perfectly legal.
|
|
In the case of the report a GL_PROXY_TEXTURE_2D_ARRAY of 2509x2509x1 failed to be allocated.
This is a work around as the GL_PROXY_TEXTURE_* is not reliable.
Reviewed By: brecht, fclem
Maniphest Tasks: T63223
Differential Revision: https://developer.blender.org/D4651
|
|
|
|
This prevents the use of uninitialized buffer.
In addition, use `memset` instead of assigning in a loop.
|
|
The wrong transformation was used. Add a new matrix specially for this case.
This also fix the Node texture coordinate that was suffering the same issue.
|
|
Until now, Orcos were computed by the gpu (GLSL) and were not taking into
account the modifier stack (breaking orco for deformed mesh).
Now Orco is now computed on CPU but only if a modifier stack is present.
Tagging that an ORCO layer is present is done via a 4th component, which is
a waste of memory/bandwidth. Best would be to do the same as auto attrib
color space and save a bool uniform somewhere but for now it's too
disruptive.
|
|
From rBd5cb425b8745
|
|
Apparently some drivers don't allow `glReadPixel` read out pixels of texture boundaries.
Intersect `rect` to avoid such cases.
|
|
|
|
|
|
This might prove usefull when debugging some driver perf issues.
|
|
|
|
It was removed by inadvertence.
|
|
|
|
|
|
Was using the wrong vector length.
|
|
|
|
|
|
Most API's already use this convention.
|
|
|
|
|
|
|
|
The shaders are: `GPU_SHADER_3D_FLAT_SELECT_ID` and `GPU_SHADER_3D_UNIFORM_SELECT_ID`.
This commit allows the drawing of the mesh select ids to be done on a 32UI format texture.
This simplifies the shader that previously acted on the backbuffer and had to do an uint to rgba conversion.
Differential Revision: https://developer.blender.org/D4350
|
|
In this case, the generic vertex attribute is {0,0,0,1}. So we look for
this case.
This fixes black text objects with a normal map applied. Also this could
help porting sculpt mode drawing to Eevee without supporting normal
mapping.
Note that will just fix black meshes due to T61870 but objects will not
show their normal map. So it's not a fix for this issue.
|
|
This is a hacky fix. We just convert the int as a float and use it as such.
This works ok for small int but will not be correct for numbers greater
than 4194303.
Correct support would require deeper change for UBO creation and socket
conversion.
|
|
|
|
|
|
This commit possibly fixes the T58938.
The crash happens when a shader that is created in a rendering context is deleted and another shader with the same name/program of the deleted one is created in the same context and used in another context.
|
|
This makes possible to have os specific workaround inside the shaders.
|
|
Convention was not to but after discussion on 918941483f7e we agree its
best to change the convention.
Names now mostly follow RNA.
Some exceptions:
- Use 'nodetrees' instead of 'nodegroups'
since the struct is called NodeTree.
- Use 'gpencils' instead of 'grease_pencil'
since 'gpencil' is a common abbreviation in the C code.
Other exceptions:
- Leave 'wm' as it's a list of one.
- Leave 'ipo' as is for versioning.
|
|
Some old AMD drivers crash when a vbo with stride 1 is used a few times.
I have not found a real solution to this problem. So the solution was to use a vbo with stride 4 (which in theory is less efficient and takes up more memory space).
|
|
The geom shader check was not needed and this uncovered an error in the
GPU_BARYCENTRIC_TEXCO optimization recently commited.
|
|
This fixes the general case. It is still not supported for hairs.
Added a hack in the geometry node to avoid unnecessary geometry shader
usage.
|
|
|
|
|
|
|
|
|
|
There is still work needed to be done from multires side to fully
support smooth shading. So can't just always have smooth shading.
Roll back to a proper code in GPU side, the rest will be handled
from CCG side.
|
|
The multires sculpt drawing was a not working in smooth mode.
Also hidding was not supported by the wireframe overlay and flat shaded
faces.
Codewise it is cleaner and index buffers are only updated if the
smoothing changes.
|
|
The dependency graph now handles updating image users to point to the current
frame, and tags images to be refreshed on the GPU. The image editor user is
still updated outside of the dependency graph.
We still do not support multiple image users using a different current frame
in the same image, same as 2.7. This may require adding a GPU image texture
cache to keep memory usage under control. Things like rendering an animation
while the viewport stays fixed at the current frame works though.
|
|
|
|
This introduce the wireframe batches. Creating the indices buffer does
not seems to slow down the sculpt in my testing (but it is kind of hard to
test reliably)
This includes a bit of cleanup in gpu_buffers.c.
|
|
|
|
While \file doesn't need an argument, it can't have another doxy
command after it.
|