Commit Graph

273 Commits

Author SHA1 Message Date
44d042094e GPU: Workaround for broken node links on NVidia drivers
Related to T70011 and T70008
2019-09-29 01:19:45 +02:00
f8da7218be Fix T70187: GPU Driver: Merge Vertices Crashes ATI/Linux/OpenSource
This has been tested with 18.2.2, 19.0.8 and 19.3.0~develop.

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D5886
2019-09-25 15:57:34 +02:00
22abc205ac Fix T69743: Armature display issues with Intel 5x0 GPU
Apparently this workaround solves the problem.
2019-09-24 08:47:15 -03:00
2541d03917 Fix T69382: Crash - Regression - GPU Intel HD 4000
Workarounds were not being enabled for drivers like `10.18.10.5069`.
2019-09-09 11:32:32 -03:00
d83734aa4b EEVEE: Fix bump mapping
Fix issue in latest patch and assure derivatives calculation is correct on
all GPU.
2019-09-06 19:02:15 +02:00
Rémi Verschelde
b57d386dc1 Fix T68009: Recognize X.Org/AMD as GPU_DEVICE_ATI and open source driver
Reviewed By: #gpu_viewport, fclem

Differential Revision: https://developer.blender.org/D5392
2019-08-16 18:41:43 +02:00
aa0322524e GPU: more complete coverage of drivers for Intel shader compilation workaround 2019-08-01 21:11:28 +02:00
d8fb63661b Fix T67951: Bone selection is broken on some Intel GPUs
The problem is that the `glDrawArraysInstancedBaseInstance` is ignoring the last parameter.
The solution is to indicate that `GLEW_ARB_base_instance` is not supported in these cases.

Reviewers: fclem, brecht, jbakker

Reviewed By: fclem, brecht

Differential Revision: https://developer.blender.org/D5383
2019-07-31 16:36:18 -03:00
af51988115 Fix T67009, T67013: crash with Intel HD Graphics and some older drivers
Add more versions to the workaround list.
2019-07-15 22:44:29 +02:00
872025c4e5 Fix crash HD Graphics 4000 Series On Windows
There was an workaround implemented for specific the Intel HD Graphics
4000 GPU on Windows platform. Other GPU from the same series also need
this workaround.

We will enable the workaround for specific drivers.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5239
2019-07-15 11:22:35 +02:00
ce66b22c42 Fix crash when editing shaders on Intel HD 4000.
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
2019-06-05 13:50:58 -03:00
Tomoaki Kawada
62fe7e9a9d GPU: support default framebuffer with ID not equal to 0 2019-06-02 12:50:50 +02:00
14a49950ff Cleanup: style, use braces for gpu 2019-04-22 19:48:17 +10:00
e12c08e8d1 ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.

For details on usage and instructions for migrating branches
without conflicts, see:

https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-17 06:21:24 +02:00
681661dbed GPU: Simplify select shaders.
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
2019-03-15 17:02:48 -03:00
f96fffe0db Fix/workaround T62167: Random crash when displaying wireframes.
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).
2019-03-04 10:27:41 -03:00
de13d0a80c doxygen: add newline after \file
While \file doesn't need an argument, it can't have another doxy
command after it.
2019-02-18 08:22:12 +11:00
eef4077f18 Cleanup: remove redundant doxygen \file argument
Move \ingroup onto same line to be more compact and
make it clear the file is in the group.
2019-02-06 15:45:22 +11:00
65ec7ec524 Cleanup: remove redundant, invalid info from headers
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-02-02 01:36:28 +11:00
2e4f1b592f Cleanup: use eGPU prefix for GPU enum types 2019-01-23 14:16:03 +11:00
7bd31bdcce Cleanup: Spelling 2019-01-04 12:51:10 +01:00
7a10960947 Provide more information on unknown GPU 2019-01-04 12:50:05 +01:00
785fc137ce Merge branch 'blender2.7' 2019-01-04 12:42:13 +01:00
e6acb4fba0 Recognize llvmpipe renderer as software OpenGL 2019-01-04 12:41:35 +01:00
60b930af3e GPU: Add another driver to the list of unused_fb_slot_workaround
I start to think that an automatic detection would be a better solution.
2018-12-25 14:36:51 -02:00
99457dd981 GPU: Add Intel HD Graphics 530 to the list of buggy intel gpus 2018-12-17 08:56:38 +01:00
da7f00b9c9 GPU Extensions: unused_fb_slot_workaround: Compare only the driver.
Dozens of renderes are included.
2018-12-06 10:05:42 -02:00
ffdd5b3699 Fix T56362: sub surface scattering does not work on eevee on radeon hd 7600 series 2018-12-05 21:22:12 -02:00
16749070ae GPU: Fix gpu workaround detection 2018-12-05 16:57:44 +01:00
a7712e8594 GPU: Improve detection of intels UHD graphics 2018-12-05 04:22:32 +01:00
4d4f0dbd8d GPU: Print opengl infos if using --debug-gpu-force-workarounds 2018-12-05 04:03:40 +01:00
1fa527bfa3 BKE: Add "--debug-gpu-force-workarounds" to force gpu workarounds
This is nice to test workarounds on other configs that may benefits from
the existing workarounds.
2018-12-05 03:05:39 +01:00
5368540431 Workbench: Fix workbench broken on some config due to usuned fb slot
This seems to be a driver bug. Only windows + Radeon HD 7500M seems
to be affected. Fix can be extended to more config if necessary.
2018-12-05 02:51:48 +01:00
40d0374411 Fix T57455: Laggy, freezing UI with Linux and Intel UHD 620
Seems like a driver bug but doing glFlush() before these calls fixes it.
2018-12-02 01:57:30 +01:00
52458ab49d GPU: Add AMD Radeon RX series to macos blitting workaround list
Fixes T55987
2018-11-28 15:59:56 +01:00
721a19d2b8 GPU: Add safety check for max line width
On some platform does not support line width > 1.0 and can even throw and
error. Better check an at least display something rather than no lines at
all.
2018-11-02 15:45:13 +01:00
f3961ab46d GPU: Extend mac blitting workaround to AMD Radeon R9 familly 2018-10-30 13:04:06 +01:00
76a047893c GPU: Fix faulty mac gpu detection 2018-10-30 11:02:59 +01:00
d5fe6e4785 GPU: Add workarounds for buggy glBlitFramebuffer function on macOS + Radeon
When calling glBlitFramebuffer on most (if not all) mac that have a GPU
from the Radeon Pro series, the data is not properly copied and only a
subset of the pixels are correctly copied.

This only happens when blitting the depth buffer if the depth buffer is
GL_DEPTH24_STENCIL8.

Changing the depth buffer format to GPU_DEPTH32F_STENCIL8 fixes the issue
but only works if blitting the depth componnent. The stencil componnent
still provoke issues when being copied.
2018-10-26 10:54:21 +02:00
2d084d4ec4 GPU: Fix Issue with recursive downsample and Intel HDXXX
This is caused by a driver bug that prevent us from rendering to (or even
binding) a texture mip level that is below GL_TEXTURE_MAX_LEVEL of the
target texture. This is fine in most drivers (and legal AFAIK) but not on
thoses Intels HDXXX + Windows.

As a fix we just put GL_TEXTURE_MAX_LEVEL lower (which is illegal because
it is undefined behaviour), but in practice it works ok and does not
trigger any warnings or errors.

This commit fixes most of the problems encountered on these GPUs (T56668).
2018-10-22 13:00:40 +02:00
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
6acf8642e5 Cleanup: remove unused GPU code. 2018-09-11 11:53:56 +02:00
a3c9f4de70 Cleanup: remove unused basic shader, we use many specialized shaders now. 2018-08-14 19:57:58 +02:00
141e94f87f Fix T55888: Eevee: crash when shadow cube size is > 512px
Note that this was only reported to happen on AMD GPU + windows.
2018-07-27 13:56:07 +02:00
9bd0c63382 Merge branch 'master' into blender2.8 2018-06-29 08:05:38 +02:00
af36dd4664 Cleanup: trailing newlines 2018-06-29 08:02:49 +02:00
1dc31f5b98 GPU: Fix missing case of new radeon on xorg.
This was causing issue with shader compilation.
2018-06-04 15:15:00 +02:00
41abbc271c DRW: Change UBOs binding logic.
Use the same logic than textures. Also reset bindings only on shader changes.
2018-03-10 02:18:25 +01:00
708ef19d88 GPU: Remove Mesa + Vega hack.
This is not needed anymore with linux 4.15 + Mesa 17.3.3.
2018-02-07 05:44:05 +01:00
9dfbd98339 Cleanup: whitespace 2017-12-04 17:20:26 +11:00