aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* intel: Store the aperture size in devinfo.Rafael Antognolli2020-05-151-12/+1
| | | | | | | | | | | | We will later use the devinfo from iris_bufmgr, where we don't have access to the screen pointer. And since we are moving it, we can reuse it in Anv and i965. v2: return error code and check for it on Anv (Lionel). v3: Remove anv_gem_get_aperture() from anv_private.h and stubs (Lionel). Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5043>
* meta: Remove support for multisample blitsIan Romanick2020-05-142-407/+15
| | | | | | | | | | | | | | | Since i965 no longer uses this function for blitting color buffers, there is no driver left that will ever support multisample textures and use _mesa_meta_BlitFramebuffer. v2: Delete blit_state::msaa_shaders and enum blit_msaa_shader. text data bss dec hex filename 12243286 1344936 1290748 14878970 e308fa before/lib64/dri/i965_dri.so 12240398 1344936 1290748 14876082 e2fdb2 after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Coalesce the GLSL and FF paths in meta_clearIan Romanick2020-05-141-14/+9
| | | | | | | | | text data bss dec hex filename 12243286 1344936 1290748 14878970 e308fa before/lib64/dri/i965_dri.so 12243286 1344936 1290748 14878970 e308fa after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Use same vertex coordinates for GLSL and FF clearsIan Romanick2020-05-141-12/+8
| | | | | | | | | text data bss dec hex filename 12243446 1344936 1290748 14879130 e3099a before/lib64/dri/i965_dri.so 12243286 1344936 1290748 14878970 e308fa after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Stop frobbing MatrixModeIan Romanick2020-05-142-33/+21
| | | | | | | | | | | | | | | text data bss dec hex filename 12243510 1344936 1290748 14879194 e309da before/lib64/dri/i965_dri.so 12243446 1344936 1290748 14879130 e3099a after/lib64/dri/i965_dri.so v2: Use _mesa_load_matrix to set the projection matrix instead of frobbing dirty bits directly. Suggested by Jason. Clean up some comments in the neighborhood. Since glOrtho isn't called, there's no point in mentioning it in the comment. Only _mesa_load_identity_matrix on the projection matrix when it isn't set to an ortho matrix. Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* mesa: Add function to calculate an orthographic projectionIan Romanick2020-05-142-10/+38
| | | | | | | | | | | | | Unlike the existing _math_matrix_ortho, the new _math_float_ortho function just stores the calculated matrix in an array of floats. It does not multiply the new matrix with data already stored. text data bss dec hex filename 12243486 1344936 1290748 14879170 e309c2 before/lib64/dri/i965_dri.so 12243510 1344936 1290748 14879194 e309da after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* mesa: Add matrix utility functions to load matricesIan Romanick2020-05-142-15/+31
| | | | | | | | | | | | These are basically DSA versions of glLoadIdentity() and glLoadMatrix() that are available for internal Mesa use. text data bss dec hex filename 12243574 1344936 1290748 14879258 e30a1a before/lib64/dri/i965_dri.so 12243486 1344936 1290748 14879170 e309c2 after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Remove support for clearing integer buffersIan Romanick2020-05-142-54/+2
| | | | | | | | | | | | | | | | Since i965 no longer uses this function for clearing color buffers, there is no driver left that will ever support integer textures and use _mesa_meta_glsl_Clear. As a side note, the has_integer_textures check was rubbish anyway because meta always smashes the API to API_OPENGL_COMPAT. text data bss dec hex filename 12244406 1344936 1290748 14880090 e30d5a before/lib64/dri/i965_dri.so 12243574 1344936 1290748 14879258 e30a1a after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Make _mesa_meta_setup_sampler staticIan Romanick2020-05-142-11/+8
| | | | | | | | | | | | | | text data bss dec hex filename 12244854 1344936 1290748 14880538 e30f1a before/lib64/dri/i965_dri.so 12244406 1344936 1290748 14880090 e30d5a after/lib64/dri/i965_dri.so v2: Put static on the function definition too. Suggested by Paulo. v3: Reformat prototype. Suggested by Jason. Reviewed-by: Paulo Zanoni <[email protected]> [v2] Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Make _mesa_meta_texture_object_from_renderbuffer staticIan Romanick2020-05-142-8/+7
| | | | | | | | | | | | | | text data bss dec hex filename 12244974 1344936 1290748 14880658 e30f92 before/lib64/dri/i965_dri.so 12244854 1344936 1290748 14880538 e30f1a after/lib64/dri/i965_dri.so v2: Put static on the function definition too. Suggested by Paulo. v3: Reformat prototype. Suggested by Jason. Reviewed-by: Paulo Zanoni <[email protected]> [v2] Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* i965: Assert that blorp always handles color blitsIan Romanick2020-05-142-0/+5
| | | | | | Reviewed-by: Paulo Zanoni <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* zink. Changed sampler default name.Duncan Hopkins2020-05-141-1/+3
| | | | | | | | Changed the sampler variable name from 'sampler' to 'sampler_<num>' to stop symbol classes in the Metal MSL shaders, as 'sampler' is a keyword. Improves human readability when debugging issues. Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4211>
* glthread: stop using GLenum16 to get correct GL errors for out-of-bounds enumsMarek Olšák2020-05-131-6/+6
| | | | | | | Reported by Ian Romanick. Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5016>
* gallium: change comments to remove 'state tracker'Marek Olšák2020-05-132-3/+3
| | | | | | | Acked-by: Eric Anholt <[email protected]> Acked-by: Alyssa Rosenzweig <[email protected]> Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4902>
* gallium: rename 'state tracker' to 'frontend'Marek Olšák2020-05-134-7/+7
| | | | | | | Acked-by: Eric Anholt <[email protected]> Acked-by: Alyssa Rosenzweig <[email protected]> Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4902>
* glthread: Fix use of alloca() without #include "c99_alloca.h"Jon Turney2020-05-121-0/+2
| | | | | | | | | | | | | | | ../src/mesa/main/glthread_draw.c: In function ‘_mesa_marshal_MultiDrawElementsBaseVertex’: ../src/mesa/main/glthread_draw.c:812:36: error: implicit declaration of function ‘alloca’; did you mean ‘malloc’? [-Werror=implicit-function-declaration] 812 | const GLvoid **out_indices = alloca(sizeof(indices[0]) * draw_count); | ^~~~~~ | malloc ../src/mesa/main/glthread_draw.c:812:36: error: initialization of ‘const GLvoid **’ {aka ‘const void **’} from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] cc1: some warnings being treated as errors Include c99_alloca.h to portably make the alloca() prototype available. Fixes: 2840bc30 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4920>
* i965: Fix out-of-bounds access to brw_stage_state::surf_offsetDanylo Piliaiev2020-05-061-23/+29
| | | | | | | | | | | | | | ../src/mesa/drivers/dri/i965/brw_wm_surface_state.c:1378:32: runtime error: index 3503345872 out of bounds for type 'uint32_t [149]' brw_assign_common_binding_table_offsets has the following comment: "Unused groups are initialized to 0xd0d0d0d0 to make it obvious that they're unused but also make sure that addition of small offsets to them will trigger some of our asserts that surface indices are < BRW_MAX_SURFACES." Cc: <[email protected]> Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4350>
* draw: add support for num_samples + sample_stride to the image pathsDave Airlie2020-05-061-2/+2
| | | | | Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4122>
* draw: introduce sampler num samples + stride membersDave Airlie2020-05-061-1/+1
| | | | | | | | This adds the num samples + sampler stride into the texture mapping paths, currently drivers just pass 0 for now. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4122>
* gallium: add a new cap PIPE_CAP_GLSL_ZERO_INITPierre-Eric Pelloux-Prayer2020-05-052-2/+8
| | | | | | | Allows driver to select a zero init mode between the 3 possible values. Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4607>
* mesa: extend GLSLZeroInit semanticsPierre-Eric Pelloux-Prayer2020-05-053-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces a new way to zero-init variables but keep the old one to not break any existing behavior. With this change GLSLZeroInit becomes an integer, with the following possible values: - 0: no 0 init - 1: current behavior - 2: new behavior. Similar to 1, except ir_var_function_out type are 0 initialized but ir_var_shader_out. The rationale behind 2 is: zero initializing ir_var_shader_out can prevent some optimization where out variables are completely eliminated when not written to. On the other hand, zero initializing "ir_var_function_out" has no effect on correct shaders but typically helps shadertoy since the main function is: void mainImage(out vec4 fragColor) { ... } So with this change we're sure that fragColor will always get a value. Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4607>
* mesa/st: consider NumUniformBlocks instead of num_ubos when bindingErik Faye-Lund2020-05-052-2/+2
| | | | | | | | | This is the number of uniform blocks at linking time, not after finalizing shaders. Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4734>
* compiler/glsl: explicitly store NumUniformBlocksErik Faye-Lund2020-05-051-0/+1
| | | | | | | | | | | It's not great to use shader_info for this information, because it might have gone through lowering of uniforms to UBOs, which can change the number of UBOs. So let's make sure we know the size of the UniformBlocks array from when the shader was linked instead. Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4734>
* driconf: add force_integer_tex_nearest optionPierre-Eric Pelloux-Prayer2020-05-051-0/+2
| | | | | | | | | | And enable it for "GRID Autosport" and "DIRT: Showdown" games. CC: 20.1 <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1258 Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4647>
* mesa: add gl_coontext::ForceIntegerTexNearestPierre-Eric Pelloux-Prayer2020-05-056-19/+52
| | | | | | | | | | | | | Some applications incorrectly use GL_LINEAR* values for integers texture. copyimage.c already implemented a tolerance for such app in prepare_target_err. This commit adds a boolean that will treat GL_LINEAR* filters as GL_NEAREST for integer textures. CC: 20.1 <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4647>
* st/mesa: destroy only own program variants when program is releasedTapani Pälli2020-05-041-1/+3
| | | | | | | | | | | | Earlier commit tried to achieve this but actually did more. This makes sure the variants for other contexts continue to live. Fixes: de3d7dbed52 ("mesa/st: release variants for active programs before unref") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2865 Cc: [email protected] Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4831>
* mesa: check draw buffer completeness on glClearBufferfv/glClearBufferuivDmitriy Nester2020-05-041-0/+12
| | | | | | | | | | | | | | | | From OpenGL 4.6, section 9.4.4 "Effects of Framebuffer Completeness on Framebuffer Operations", page 332: "An INVALID_FRAMEBUFFER_OPERATION error is generated by attempts to render to or read from a framebuffer which is not framebuffer complete. This error is generated regardless of whether fragments are actually read from or written to the framebuffer. For example, it is generated when a rendering command is called and the framebuffer is incomplete, even if RASTERIZER_DISCARD is enabled." Signed-off-by: Dmytro Nester <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4833>
* i965: disable shadow batches when batch debugging.Dave Airlie2020-05-031-1/+5
| | | | | | | | | | If you want to dump batch state, it needs to have the relocs processed but the relocs don't get processed on the shadow batch. Choose debugging over speed here. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4846>
* intel: Let drivers call brw_nir_lower_cs_intrinsics()Caio Marcelo de Oliveira Filho2020-05-011-0/+2
| | | | | | | | | | | | | | The motivating factor is: this lowering may cause nir_intrinsic_load_local_group_size intrinsics to be added to the shader, and by moving this around we make possible for the drivers to lower that intrinsic by themselves. Iris will do just that in a later patch for implementing variable group size. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* intel/fs: Add an option to lower variable group size in backendCaio Marcelo de Oliveira Filho2020-05-011-0/+1
| | | | | | | | | Adding this since Iris will handle variable group size parameters by itself. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* intel/fs: Clean up variable group size handling in backendCaio Marcelo de Oliveira Filho2020-05-011-3/+0
| | | | | | | | Just use the information from NIR shader_info. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* glthread: Add GLAPIENTRY to _mesa_marshal_MultiDrawArrays.Jose Fonseca2020-05-011-1/+1
| | | | | | Fixes MSVC build. Trivial. Fixes: 2840bc3065b9e991b2c5880a2ee02e2458a758c4
* glthread: upload non-VBO vertices and indices for non-Indirect non-IBM drawsMarek Olšák2020-04-305-0/+992
| | | | | | This is basically the same thing u_vbuf does. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: handle gl{Push,Pop}ClientAttrib{DefaultEXT} for glthread statesMarek Olšák2020-04-302-0/+105
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: handle POS vs GENERIC0 aliasingMarek Olšák2020-04-302-3/+10
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: initialize VAOs properlyMarek Olšák2020-04-303-0/+33
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: track primitive restart stateMarek Olšák2020-04-303-0/+63
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: track instance divisor changesMarek Olšák2020-04-302-11/+35
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: track pointers and strides for Pointer & EXT_dsa attrib functionsMarek Olšák2020-04-302-12/+59
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: don't use atomics for refcounting to decrease overhead on AMD ZenMarek Olšák2020-04-302-1/+33
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* glthread: do glBufferSubData as unsynchronized upload + GPU copyMarek Olšák2020-04-304-2/+138
| | | | | | | | | | | | 1. glthread has a private upload buffer (as struct gl_buffer_object *) 2. the new function glInternalBufferSubDataCopyMESA is used to execute the copy (the source buffer parameter type is struct gl_buffer_object * as GLintptr) Now glthread can handle arbitrary glBufferSubData sizes without syncing. This is a good exercise for uploading data outside of the driver thread. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: add _mesa_InternalBind{ElementBuffer,VertexBuffers} for glthreadMarek Olšák2020-04-305-0/+62
| | | | | | Uploaded non-VBO user data will be set via these functions. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: add glInternalBufferSubDataCopyMESA for glthreadMarek Olšák2020-04-304-1/+51
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: inline vbo_context inside gl_context to remove vbo_context dereferencesMarek Olšák2020-04-306-157/+151
| | | | | | | | | | The number of lines in the disassembly of vbo_exec_api.c.o decreased by 4.5%, which roughly corresponds to a decrease in instructions for immediate mode thanks to the removal of ctx->vbo_context dereferences. It increases performance in one Viewperf11 subtest by 2.8%. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa,st/mesa: add a fast path for non-static VAOsMarek Olšák2020-04-305-0/+64
| | | | | | | | | | | | | Skip most of _mesa_update_vao_derived_arrays if the VAO is not static. Drivers need a separate codepath for this. This increases performance by 7% with glthread and the game "torcs". The reason is that glthread uploads vertices and sets vertex buffers every draw call, so the overhead is very noticable. glthread doesn't hide the overhead, because the driver thread is the busiest thread. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: don't update shaders on fixed-func state changes if user shaders are boundMarek Olšák2020-04-302-3/+28
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: don't set unnecessary program flags in _mesa_update_stateMarek Olšák2020-04-301-2/+1
| | | | | | | _NEW_PROGRAM is already set. _NEW_FRAG_CLAMP is not used by the fixed-func fragment shader. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: set _NEW_FRAG_CLAMP only when neededMathias Fröhlich2020-04-301-3/+5
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* mesa: don't call _mesa_update_state for _mesa_get_clamp_fragment_colorMarek Olšák2020-04-304-18/+4
| | | | | | It's not needed. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
* st/mesa: Move _NEW_FRAG_CLAMP to NewFragClamp driver flag.Mathias Fröhlich2020-04-305-12/+21
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>