Commit Graph

2132 Commits

Author SHA1 Message Date
Sebastian Parborg
a16e5b8efa Cleanup: remove unused DerivedMesh code.
Differential Revision: https://developer.blender.org/D3736
2018-09-27 20:19:28 +02:00
Campbell Barton
14e7fcfdde Cleanup: warnings 2018-09-27 21:15:55 +10:00
mano-wii
da96336e5f Python GPU module: Wrap GPUIndexBuf
Differential Revision D3714
2018-09-27 00:53:45 -03:00
Brecht Van Lommel
342e73f90f Spelling fixes in comments and descriptions (2.8 changes), patch by luzpaz.
Differential Revision: https://developer.blender.org/D3719
2018-09-24 18:48:29 +02:00
Brecht Van Lommel
253dce07d7 Merge branch 'master' into blender2.8 2018-09-24 17:42:52 +02:00
Brecht Van Lommel
0cff044d84 Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3719
2018-09-24 17:28:40 +02:00
Jacques Lucke
19f46c6ac0 Weight Paint: Multiply overlay on the mesh
Use the multiply blending mode for the weight paint overlay.
To support the opacity slider, we need a new shader. Otherwise this combination of multiplication and mixing does not seem to be supported by glBlendFunc.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3727
2018-09-24 17:10:29 +02:00
Campbell Barton
9a77f33bad GPU: utility function to draw a partial circle 2018-09-24 16:22:22 +10:00
Campbell Barton
391536ef12 Fix missing edge in shape-to-wire utility 2018-09-21 16:09:32 +10:00
Dalai Felinto
425cfdd5be GPU Python API: shader.uniform_float
The existing alternative is to use a buffer and call
uniform_vector_float which is overkill for such a simple operation.
2018-09-20 19:51:06 +00:00
Clément Foucault
b8d55a570e GPUCodegen: Remove unnecessary GLEW_VERSION_3_0 checks 2018-09-20 17:53:47 +02:00
Clément Foucault
667add5fc5 Eevee: Implement Wireframe Node
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-20 17:53:47 +02:00
Dalai Felinto
cffae36381 Fix build for MSVC: Remove trailing double semicolon
Not sure why but MSVC is complaining for some of those.

In particular for the struct in BKE_subdiv_ccg.h. Those were the ones
crashing here..
2018-09-20 14:59:55 +00:00
Clément Foucault
5ada6e7540 GPUTexture: Fix HDRI being clamped on OSX
Seems like GLEW_ARB_texture_float is not defined in core profile on OSX
even if float textures are part of the 3.3 core spec.

So removing uneeded backup cases.
2018-09-19 23:59:25 +02:00
Clément Foucault
960ab2ab58 Cleanup: Remove "_new" from GPU_generate_pass_new
Not needed anymore since old one has been deleted.
2018-09-19 20:02:12 +02:00
Campbell Barton
bb3ec3ebaf BLI_utildefines: rename pointer conversion macros
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-19 12:12:21 +10:00
Campbell Barton
f35e9f047a Merge branch 'master' into blender2.8 2018-09-19 12:14:36 +10:00
Campbell Barton
345c348262 Cleanup: style 2018-09-19 10:29:57 +10:00
Clément Foucault
eafec6d4f7 GPUShader: Manually validate sampler count
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-18 14:22:42 +02:00
Clément Foucault
a06d803a5a Fix T56817: Assert because of invalid framebuffer 2018-09-16 21:22:55 +02:00
Campbell Barton
3f20b3b585 Cleanup: use r_ prefix for return args 2018-09-15 10:34:59 +10:00
Clément Foucault
b3a9069170 GPUTexture: Fix problem with glGenerateMipmap
Fix T56789: There was issue with certain driver with glGenerateMipmap and
GPU_DEPTH_COMPONENT24.
In this case we just create a complete texture with mipmaps manually
without downsampling / initializing the data.
2018-09-15 00:11:25 +02:00
mano-wii
1287965089 GPU module: Initial implementation of the gpu.shader submodule.
Differential Revision: https://developer.blender.org/D3688
2018-09-14 09:46:19 -03:00
Clément Foucault
e37479ad89 GPUBuffers: Rework support for pbvh grids + fast navigate
Flat shaded grids are now rendered as a long triangle strip with
degenerate triangles.

Smooth shaded grids are not changed.

Also add back fast navigate. The only difference with 2.79 is that fast
navigate + flat shading will show slitly "incorrect" smooth face. But that's too
much effort to fix for what it is.
2018-09-14 12:20:01 +02:00
Sergey Sharybin
39fabaddfd GPU: Remove residue of OpenSubdiv
Was done more like a hack on top of old drawing pipeline.
Should be re-implemented to fit new draw manager closer.
2018-09-12 14:30:28 +02:00
Campbell Barton
7eecc94074 Cleanup: use uint/uchar types in GPU 2018-09-12 12:19:46 +10:00
Clément Foucault
766d9c2937 GPUMaterial: Fix issue with coloramp and constant interpolation
It was not respecting the clamp to edge texture param because we use
texelFetch directly in this case.
2018-09-11 16:15:43 +02:00
Sergey Sharybin
eaf993ad94 Followup for previous PBVH commit
Didn't realize the index buffer is stored once in a BVH
and same pointer is reused. Surprisingly, simple files
were fixed with the previous fix.

Now disabled the optimization all together, and it was
simpler to just completely remove all residue of the
code. It is likely to be a different implementation
anyway, so no need to try to keep code in a semi-broken
state.
2018-09-11 15:34:09 +02:00
Sergey Sharybin
8dde1e13e2 FIx/workaround wrong number of primitives in PBVG grid buffers
Nodes can have different number of grids, so can not so simply
re-use index buffer across nodes. For now allow re-using buffer
if number of grids matches.

The issue is, number of grids is probably almost never matches,
so in order to have this optimization working need more tricks.
Maybe we can "instance" index buffers?
2018-09-11 14:45:13 +02:00
Brecht Van Lommel
6acf8642e5 Cleanup: remove unused GPU code. 2018-09-11 11:53:56 +02:00
Sergey Sharybin
7c64f8537f PBVH: Fix miossing normals for grids 2018-09-11 11:50:22 +02:00
Campbell Barton
58a8277098 GPU: utility function to unregister presets 2018-09-11 13:21:47 +10:00
Charlie Jolly
89295c7f6b Eeevee: update to match recent voronoi GLSL features for Cycles.
Differential Revision: https://developer.blender.org/D3680
2018-09-10 19:48:14 +02:00
Clément Foucault
2a907bea9c Fix assert when toggling Xray mode after going to Solid and lookedev/eevee 2018-09-10 18:05:11 +02:00
Sergey Sharybin
0284392c48 Cleanup: More variables unused in release 2018-09-10 09:56:14 +02:00
Campbell Barton
ee6b95f7e0 UI: move toolbar arrow closer to button edge
Could overlap icons.
2018-09-07 12:21:24 +10:00
Campbell Barton
1450a37555 CMake: add missing headers 2018-09-06 21:23:25 +10:00
Clément Foucault
fbbadc8775 Fix T56544: Crash on startup with Radeon + Win 7
Testing GLEW_ARB_texture_gather is not sufficient in this case. We need to
test if GL_ARB_texture_gather is defined in the shader, which is always true
on some NVIDIA drivers who does not support it...
So trying to make everything work.
2018-09-03 19:21:23 +02:00
Campbell Barton
ae57383648 Cleanup: comment blocks 2018-09-02 18:28:27 +10:00
Dalai Felinto
f436e0acab Cleanup: GPU_BATCH_DISCARD_ARRAY_SAFE (deduplicate existing code) 2018-08-30 17:49:05 -03:00
Campbell Barton
89186595de Cleanup: add file doxy comments 2018-08-30 01:56:08 +10:00
Clément Foucault
7815276b93 Cleanup: Remove debug printf 2018-08-24 18:00:10 +02:00
Clément Foucault
0ba3a1a686 Sculpt: Optimize Mask Overlay drawing
* Remove support for diffuse color in the pbvh buffers.
* Upload raw data to GPU.
* Only draw nodes that have mask data when drawing the overlay.

This should fix T56466
2018-08-24 16:46:59 +02:00
Clément Foucault
34b3d6e2f8 UI: Optimize the area border drawing
It is was not really a bottleneck but it was triggering my OCD when 1/3rd
of the drawcalls in a normal scene were basically only caused by this.
2018-08-23 22:29:45 +02:00
Clément Foucault
890623f886 Object Mode: Add back spot cone display 2018-08-22 19:49:32 +02:00
Clément Foucault
477b4559ec Paint Overlay: Fix blending of the brush overlay 2018-08-22 19:49:32 +02:00
Clément Foucault
9d65be6b42 GPU: Fix issue with multiple Geometry node. 2018-08-22 13:51:02 +02:00
Clément Foucault
6489243332 DRW: Fix background image display
This make the workbench draw everything in the background routine just like
eevee. This is because the workbench uses floating point buffers too and
rendering background to this buffer makes it incorrect without proper
color management.

This could be improved because in xray the background is not blended but
dithered as it's drawn after the main pass.
2018-08-22 13:51:02 +02:00
Clément Foucault
bb639ccc47 GPUMaterial: Geometry Node: Add support for parametric output
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-22 13:51:02 +02:00
Clément Foucault
d96715fe5c Fix T55722 : Blender 2.8 crashes on startup on old Nvidia cards 2018-08-16 23:57:59 +02:00