Age | Commit message (Collapse) | Author |
|
Failed to build without WITH_LEGACY_OPENGL.
|
|
|
|
In the Intel HD 4000 driver a shader has to be deleted in the same context in which it is created.
However, because you can't use a rendering context on different threads, to maintain the multithreaded compilation, the solution was to use the `GL_ARB_get_program_binary` and copy the binary generated for the shader and generate a shader on the main context using that binary.
This solution is limited only to Intel HD 4000 and windows.
Reviewers: fclem
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D5019
|
|
For offscreen rendering a high definition color buffer is needed.
Without it there are banding issues when doing multi-sampling viewport
rendering.
Reviewed By: fclem
Maniphest Tasks: T65287
Differential Revision: https://developer.blender.org/D5009
|
|
Restart index can have been changed in another context and the static
var can get out of sync. A better solution is to set the restart index
when binding the VAO. It also have less perf impact.
Fix T65364 Corrupted mesh display on macOS
|
|
|
|
|
|
Automated using clang-tidy.
|
|
|
|
This seems to be a requirement and remove some errors in
renderdoc.
|
|
This type of indices is not natively supported on modern GPU and
gives warning on some implementation. The memory savings it
provides is also quite minimal and unlikely to be visible on
nowadays hardware.
This remove some uneeded struct members and makes primitive
restart always enabled by default. This can be broken by addons
if they are not careful enough but many other states have this
problem.
Also leverage GL_PRIMITIVE_RESTART_FIXED_INDEX if
ARB_ES3_compatibility is supported. This removes all API calls
to change restart index depending on indices length.
|
|
|
|
|
|
Passing a const pointer to MEM_freeN/MEM_recallocN lead to
C4090 'function': different 'const' qualifiers
warnings with MSVC
|
|
|
|
|
|
|
|
This patch fix the issue introduced by recent refactor and fixes
computation when using overscans.
|
|
Rename it to GPU_batch_draw_advanced and use base instance when possible.
Also add GPU_batch_bind to bind the vao independantly of drawing commands.
|
|
This will have multiple benefit.
TODO detail benefits (culling, more explicit, handling of clipping planes)
For now the view usage is wrapped to make changes needed more progressive.
|
|
dimensions is 0.
|
|
|
|
|
|
This is to simplify the usage of SSS.
Now it automatically detect if there is any SSS material in the view and
allocate the needed buffer if any.
|
|
|
|
|
|
|
|
This is normally already calculated so add a version that takes the
inverted matrix.
|
|
On Windows 10 with a post Februari 2019 Intel driver, the box selection
is not working. It only detects the object centers, but not the drawn
triangles of the basic engine.
Reviewed By: fclem
Maniphest Tasks: T62947
Differential Revision: https://developer.blender.org/D4857
|
|
|
|
|
|
|
|
With this patch, the size of GPUVertFormat goes from 1240 to 388.
|
|
GPU_vertbuf_discard to clear buffer containers in place.
GPU_BATCH_UNUSED to tag batch that are cleared and not immediatly usable.
|
|
- Use int instead of uint for safety and less conversions.
- Add free callback
- Add cleared alloc option
|
|
This removes the need to pass the Material* all over the place in the draw
manager. Cleanup comming right after.
|
|
|
|
Cycles now uses the color space on the image datablock, and uses OpenColorIO
to convert to scene linear as needed. Byte images do not take extra memory,
they are compressed in scene linear + sRGB transfer function which in common
cases is a no-op.
Eevee and workbench were changed to work similar. Float images are stored as
scene linear. Byte images are compressed as scene linear + sRGB and stored in
a GL_SRGB8_ALPHA8 texture. From the GLSL shader side this means they are read
as scene linear, simplifying the code and taking advantage of hardware support.
Further, OpenGL image textures are now all stored with premultiplied alpha.
Eevee texture sampling looks a little different now because interpolation
happens premultiplied and in scene linear space.
Overlays and grease pencil work in sRGB space so those now have an extra
conversion to sRGB after reading from image textures. This is not particularly
elegant but as long as engines use different conventions, one or the other
needs to do conversion.
This change breaks compatibility for cases where multiple image texture nodes
were using the same image with different color space node settings. However it
gives more predictable behavior for baking and texture painting if save, load
and image editing operations have a single color space to handle.
Differential Revision: https://developer.blender.org/D4807
|
|
|
|
|
|
|
|
Making them world space by default remove a lot of legacy conversion from
viewspace.
|
|
|
|
The end goal for this is to lower the number of needed matrices.
This also cleanup some uneeded transformation.
|
|
|
|
|
|
Also fix engine data validation that was not previously not working.
|
|
This remove a avoid the big overhead present in BLI_mempool when it is
cleared.
|
|
Fall-through without label or default after it.
|
|
|