summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-03-18docs: mark GL_ARB_shader_image_load_store/_size as done for radeonsiimages-radeonsiNicolai Hähnle2-2/+4
2016-03-18radeonsi: Set PIPE_SHADER_CAP_MAX_SHADER_IMAGESEdward O'Callaghan1-1/+2
This enables ARB_shader_image_load_store and ARB_shader_image_size. Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> [allow the same number of images for all shader stages and require LLVM 3.9]
2016-03-18radeonsi: disable early Z if the fragment shader writes to memoryNicolai Hähnle1-2/+12
Empirically, both the EXEC_ON_* flags and LATE_Z are necessary.
2016-03-18tgsi/scan: add writes_memory to flag presence of stores or atomicsNicolai Hähnle2-4/+9
2016-03-18radeonsi: force the DCC enable bit off in image descriptors for writingNicolai Hähnle1-8/+45
This avoids a lockup at least on Tonga.
2016-03-18radeonsi: implement MemoryBarrierNicolai Hähnle1-0/+36
2016-03-18radeonsi: implement volatile memory accessNicolai Hähnle1-0/+4
Prevent loads from being re-ordered or coalesced. Atomics don't need special handling by definition, and stores don't need special handling because LLVM is unable to detect dead image or buffer stores.
2016-03-18radeonsi: implement coherent memory access (v2)Nicolai Hähnle1-4/+13
v2: set glc=1 for volatile also on buffers
2016-03-18radeonsi: Lower TGSI_OPCODE_MEMBAR down to LLVM opNicolai Hähnle1-0/+31
2016-03-18radeonsi: Lower TGSI_OPCODE_ATOM* down to LLVM opNicolai Hähnle1-8/+113
2016-03-18radeonsi: Lower TGSI_OPCODE_STORE down to LLVM opNicolai Hähnle1-3/+80
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18radeonsi: Lower TGSI_OPCODE_LOAD down to LLVM op (v3)Nicolai Hähnle1-0/+139
v2: new signature style for buffer intrinsics (offsets) v3: new signature style for llvm.amdgcn.buffer.load.format (overloaded return) Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v2)
2016-03-18radeonsi: extract the LLVM type name construction into its own functionNicolai Hähnle1-7/+19
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18radeonsi: Lower TGSI_OPCODE_RESQ down to LLVM opNicolai Hähnle1-0/+129
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18radeonsi: extract TXQ buffer size computation into its own functionNicolai Hähnle1-20/+35
This will allow it to be reused for RESQ. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18radeonsi: decompress shader imagesNicolai Hähnle1-3/+33
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18radeonsi: update shader image descriptor for invalidated bufferNicolai Hähnle1-1/+21
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18radeonsi: implement set_shader_images (v2)Nicolai Hähnle6-29/+254
Whether DCC is disabled depends on the access flags with which the image is bound: image_load supports DCC, but store and atomic don't. v2: remove an unnecessary masking of images->desc.enabled_mask Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18gallium/radeon: make r600_texture_disable_dcc externally accessibleNicolai Hähnle2-2/+4
We will need it in radeonsi for shader images. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18tgsi/scan: track which shader images are really buffersNicolai Hähnle2-0/+7
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18tgsi/scan: add images_writemaskNicolai Hähnle2-2/+21
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18st/mesa: translate additional flags in MemoryBarrierNicolai Hähnle1-3/+18
Re-order flags in the order in which they appear in the OpenGL spec in the description of MemoryBarrier(). Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18gallium: add additional PIPE_BARRIER_* bitsNicolai Hähnle1-0/+7
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-18st/mesa: use the texture view's format for render-to-textureNicolai Hähnle1-7/+15
Aside from the bug below, it fixes a simplistic test I've written locally, and I see no regression in Piglit for radeonsi. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94595 Cc: mesa-stable@lists.freedesktop.org
2016-03-18st/mesa: clean up st_translate_texture_target()Brian Paul1-25/+44
Reformat code. Improve assertion. Reviewed-by: Charmaine Lee <charmainel@vmware.com>
2016-03-18st/mesa: simplify drawpixels shader code with tgsi transform helper functionsBrian Paul1-64/+18
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
2016-03-18st/mesa: simplify bitmap shader code with tgsi transform helper functionsBrian Paul1-37/+8
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
2016-03-18tgsi: add tgsi_transform_op3_inst() functionBrian Paul1-0/+34
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
2016-03-18doc: add 'vec4' option in INTEL_DEBUGJuan A. Suarez Romero1-0/+1
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
2016-03-18egl: support EGL_LARGEST_PBUFFER in eglCreatePbufferSurface(...)Daniel Czarnowski3-1/+13
Patch provides a default for a set pbuffer surface size when EGL_LARGEST_PBUFFER is used by the client. MIN2 macro is moved to egldefines so that it can be shared. Fixes following Piglit test: egl-create-largest-pbuffer-surface From EGL 1.5 spec: "Use EGL_LARGEST_PBUFFER to get the largest available pbuffer when the allocation of the pbuffer would otherwise fail." Currently there exists no API to query largest available pixmap size using xlib or xcb so right now this seems most straightforward way to ensure that we fulfill above API and also we don't attempt to allocate 'too big' pixmap which might succeed on server side but not work in practice when driver starts to use it as a texture. v2: add more explanation about the change (Emil) Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-17gallium/swr: Cleaned up some context-resource managementGeorge Kyriazis5-26/+27
Removed bound_to_context. We now pick up the context from the screen instead of the resource itself. The resource could be out-of-date and point to a pipe that is already freed. Fixes manywin mesa xdemo. Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
2016-03-18mesa: remove remaining tabs in prog_parameter.cTimothy Arceri1-8/+8
Acked-by: Matt Turner <mattst88@gmail.com>
2016-03-18mesa: inline _mesa_add_unnamed_constant()Timothy Arceri2-24/+6
Reviewed-by: Matt Turner <mattst88@gmail.com>
2016-03-18mesa: simplify and inline _mesa_lookup_parameter_index()Timothy Arceri3-41/+18
The function has only one user and strings are always null terminated. Reviewed-by: Matt Turner <mattst88@gmail.com>
2016-03-18mesa: make _mesa_lookup_parameter_constant staticTimothy Arceri2-100/+94
This is not used outside of prog_parameter.c Reviewed-by: Matt Turner <mattst88@gmail.com>
2016-03-18mesa: remove unused functionTimothy Arceri1-6/+0
Reviewed-by: Matt Turner <mattst88@gmail.com>
2016-03-17st/mesa: honour sized internal formats in st_choose_format (v2)Nicolai Hähnle1-21/+6
The bitcasting which is possible with shader images (and texture views?) requires that when the user specifies a sized internal format for a texture, we really allocate that format. To this end: (1) find_exact_format should ignore sized internal formats and (2) some of the entries in the mapping table corresponding to sized internal formats are reordered to use an RGBA format instead of a BGRA one. This fixes arb_shader_image_load_store-bitcast in the (work in progress) ARB_shader_image_load_store implementation for radeonsi. v2: don't change the mapping of GL_RGB10: the change caused a regression because it preferred a format with an alpha channel, and GL_RGB10 is not among the supported formats for shader images Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-17configure.ac: enable_asm=yes when x-compiling across same X86 archDongwon Kim1-2/+4
Currently, configure script is forcing 'enable_asm' to be 'no' whenever cross-compilation is performed on X86 host. This is based on an assumption that target architecture is different from host's (i.e. ARM). But there's always a case that we do cross-compilation for target that is also X86 based just like host in which same ASM codes will be supported. 'enable_asm' should not be forced to be "no" anymore in this case. v2: corrected commit message Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
2016-03-18glsl: disable varying packing when its not safeTimothy Arceri4-53/+180
In GL 4.4+ there is no guarantee that interpolation qualifiers will match between stages so we cannot safely pack varyings using the current packing pass in Mesa. We also disable packing on outerward facing interfaces for SSO because in ES we need to retain the unpacked varying information for draw time validation. For desktop GL we could allow packing for SSO in versions < 4.4 but its just safer not to do so. We do however enable packing on individual arrays, structs, and matrices as these are required by the transform feedback code and it is still safe to do so. Finally we also enable packing when a varying is only used for transform feedback and its not a SSO. This fixes all remaining rendering issues with the dEQP SSO tests, the only issues remaining with thoses tests are to do with validation. Note: There is still one remaining SSO bug that this patch doesn't fix. Their is a chance that VS -> TCS will have mismatching interfaces because we pack VS output in case its used by transform feedback but don't pack TCS input for performance reasons. This patch will make the situation better but doesn't fix it. V4: fix out of order function params after rebase, make sure packing still disabled in tess stages. Update comments as to why we disable packing on SSO. V3: ES 3.1 *does* require interpolation to match so don't disable packing there. Rebased on master rather than on enhanced layouts component packing series. V2: Make is_varying_packing_safe() a function in the varying_matches class, fix spelling (Matt) and make sure to remove the outer array when dealing with Geom and Tess shaders where appropriate. Lastly fix piglit regression in new piglit test and document the undefined behaviour it depends on: arb_separate_shader_objects/execution/vs-gs-linking.shader_test Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2016-03-18glsl: pass disable_varying_packing bool to the lowering passTimothy Arceri3-15/+24
This will allow us to choose to ignore the disable which will be useful for more fine grained control over when to enable or disable packing. Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2016-03-17radeonsi: fix Hyper-Z hangs on P2 configsMarek Olšák1-2/+8
Cc: 11.1 11.2 <mesa-stable@lists.freedesktop.org> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-03-17docs: Renormalize older extensions.Romain Failliot1-26/+26
For older extensions, there is an explanation first and the extension name in brackets, like that: Clamping controls (GL_ARB_color_buffer_float) I inverted that so we have the extension first and then the explanation in brackets, like that: GL_ARB_color_buffer_float (Clamping controls) It will help me later to parse the few extensions that use this syntax: all drivers that support <GL_extension> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-03-17docs: Renormalize some extensions.Romain Failliot1-3/+3
This fixes some exceptions I have to deal with in mesamatrix.net. The extensions GL_ARB_texture_buffer_object had a comment between "DONE" and the brackets. And the extension GL_KHR_robustness (in GL 4.5 and GLES 3.1) was using "90% done" instead of "in progress". The "90% done" is still here though, but as an extension comment. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-03-17docs: Realign the "Status" column.Romain Failliot1-139/+139
The "Status" column was misaligned in some GL sections. This is a lot of diffs, but it's only spaces in the end. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-03-17docs: howto to read and edit GL3.txtRomain Failliot1-5/+20
Added a small guide on how to read and edit GL3.txt. I think this would help as much the devs as the users reading this file. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-03-17r300g: add missing layer argument to rws->buffer_get_handle() callBrian Paul1-1/+1
Fixes compilation error since 5aea0d691. Reviewed-by: Christian König <christian.koenig@amd.com>
2016-03-17radeon/winsys: add layer support for BO exportChristian König4-0/+7
Add layer support to export individual array layers. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-17radeon/winsys: add offset support for BO import/exportChristian König5-18/+33
Add offset support to handle NV12 offsets as well. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-17gallium/winsys/drm: add layer to struct winsys_handleChristian König1-0/+5
For exporting a specific layer of an array texture. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2016-03-17gallium/winsys/drm: add offset to struct winsys_handleChristian König6-0/+13
We are going to need this for EGL_EXT_image_dma_buf_import. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>