aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* pan/bi: Add modifiers to bi_instructionAlyssa Rosenzweig2020-03-051-0/+7
| | | | | | | Now that we can check if we support them via the class. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
* pan/bi: Add class propertiesAlyssa Rosenzweig2020-03-054-0/+64
| | | | | | | | We need to keep track of what specific classes support. For now just track floating point modifiers. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
* pan/bi: Add src/dest fields to bifrost_instructionAlyssa Rosenzweig2020-03-051-0/+41
| | | | | | | | | ...along with some helpers to generate indices. The indexing scheme is mostly a copypaste from Midgard, except we specifically reserve 0 as the sentinel (midgard uses ~0 for this which has always been a pain point). Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
* pan/bi: Add the control flow graphAlyssa Rosenzweig2020-03-051-0/+52
| | | | | | | | We're starting to build up the IR data structures in preparation to get everything piped through. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
* pan/bi: Stub out new compilerAlyssa Rosenzweig2020-03-056-3/+85
| | | | | | | Just enough to pipe in the NIR shader. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
* pan/bi: Gut old compilerAlyssa Rosenzweig2020-03-0515-2110/+54
| | | | | | | | We're making some pretty dramatic design pivots so this early on it'll be easier to start from scratch, I think. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
* panfrost: Add note about preloaded varyingsAlyssa Rosenzweig2020-03-051-0/+5
| | | | | | | | | | | There's a magic bit in preload_regs which controls this. It doesn't appear to be supported on G71 but it is on G52. I'd guess G72 supports it too but I don't have a way to check this. Needless to say, we'll need a quirks database for this. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
* aco: fix image load/store with lod and 1D imagesSamuel Pitoiset2020-03-051-3/+0
| | | | | | | | | | | | | | Make sure to add the lod value if non-null as the 2nd operand. Fixes dEQP-VK.image.load_store_lod.with_format.1d.* on all gens except GFX9. Fixes: 4d49a7ac737 ("aco: handle nir_intrinsic_image_deref_{load,store} with lod") Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4060> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4060>
* vbo: merge draws even when begin==0 or end==0Marek Olšák2020-03-041-6/+25
| | | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* vbo: merge more primitive types for glBegin/End (v2)Marek Olšák2020-03-044-50/+43
| | | | | | | v2: clean it up more Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* mesa: deduplicate draw indirect functionsMarek Olšák2020-03-041-121/+36
| | | | | Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* mesa: optimize get_index_sizeMarek Olšák2020-03-041-16/+9
| | | | | Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* mesa: remove _mesa_index_buffer::index_size in favor of index_size_shiftMarek Olšák2020-03-0415-47/+40
| | | | | | Reviewed-by: Ian Romanick <[email protected]> Suggested-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* Revert "mesa: check for z=0 in _mesa_Vertex3dv()"Marek Olšák2020-03-041-4/+1
| | | | | | | | | | | | | | | This reverts commit f04d7439a0ad6e13ff2912ff824553b6bcf511a4. It no longer helps performance and the current vbo implementation is faster anyway. The app that hit this was a CAD program called Spazio3D. It made pretty terrible use of the OpenGL API and we sent them some tips for improvements. I'm assuming they've fixed this by now. Reviewed-by: Mathias Fröhlich <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* vbo: fold code from vbo_exec_fixup_vertex to vbo_exec_wrap_upgrade_vertexMarek Olšák2020-03-041-5/+6
| | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* vbo: clean up conditional blocks in ATTR_UNIONMarek Olšák2020-03-041-5/+3
| | | | | | | | | Move the A != 0 code to the first block. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Mathias Fröhlich <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* vbo: handle GS and tess primitive types when splitting Begin/EndMarek Olšák2020-03-041-0/+27
| | | | | | Reviewed-by: Mathias Fröhlich <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* vbo: clean up vbo_copy_verticesMarek Olšák2020-03-041-38/+19
| | | | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Mathias Fröhlich <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* vbo: deduplicate copy_vertices functionsMarek Olšák2020-03-044-158/+117
| | | | | | | | | There are some differences in exec, but those look like bug fixes not ported to vbo_save. Reviewed-by: Mathias Fröhlich <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* vbo: don't look at the second draw's count when merging 2 glBegin/End drawsMarek Olšák2020-03-041-3/+3
| | | | | | | | Only the first count needs to be aligned. Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* mesa: replace some index_size multiplications and divisions with shiftsMarek Olšák2020-03-044-12/+12
| | | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* mesa: add index_size_shift = log2(index_size) into _mesa_index_bufferMarek Olšák2020-03-045-19/+30
| | | | | | | | for faster division Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4052>
* android: r600/sfn: Add GDS instructionsMauro Rossi2020-03-041-0/+2
| | | | | | | | | | | | Fixes the following building errors: external/mesa/src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp:59: error: undefined reference to 'r600::GDSInstr::GDSInstr(r600::ESDOp, r600::GPRVector const&, std::__1::shared_ptr<r600::Value> const&, std::__1::shared_ptr<r600::Value> const&, std::__1::shared_ptr<r600::Value> const&, int)' ... external/mesa/src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp:256: error: undefined reference to 'r600::RatInstruction::RatInstruction(r600::ECFOpCode, r600::RatInstruction::ERatOp, r600::GPRVector const&, r600::GPRVector const&, int, std::__1::shared_ptr<r600::Value> const&, int, int, int, bool)' Fixes: 32d3435a ("r600/sfn: Add GDS instructions") Signed-off-by: Mauro Rossi <[email protected]> Reviewed-by: Gert Wollny <[email protected]>
* android: r600/sfn: fix includes and libmesa_nir dependencyMauro Rossi2020-03-041-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Fixes the following building errors: In file included from external/mesa/src/gallium/drivers/r600/sfn/sfn_debug.cpp:28: In file included from external/mesa/src/gallium/drivers/r600/sfn/sfn_debug.h:34: In file included from external/mesa/src/compiler/nir/nir.h:41: In file included from external/mesa/src/compiler/nir_types.h:36: external/mesa/src/compiler/glsl_types.h:38:10: fatal error: 'main/config.h' file not found #include "main/config.h" ^~~~~~~~~~~~~~~ 1 error generated. In file included from external/mesa/src/gallium/drivers/r600/sfn/sfn_debug.cpp:28: In file included from external/mesa/src/gallium/drivers/r600/sfn/sfn_debug.h:34: external/mesa/src/compiler/nir/nir.h:50:10: fatal error: 'nir_opcodes.h' file not found #include "nir_opcodes.h" ^~~~~~~~~~~~~~~ 1 error generated. Fixes: f718ac62 ("r600/sfn: Add a basic nir shader backend") Signed-off-by: Mauro Rossi <[email protected]> Reviewed-by: Gert Wollny <[email protected]>
* android: aco: fix PIPE_FORMAT related building errorsMauro Rossi2020-03-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the following building errors: In file included from external/mesa/src/amd/compiler/aco_dead_code_analysis.cpp:25: In file included from external/mesa/src/amd/compiler/aco_ir.h:33: In file included from external/mesa/src/compiler/nir/nir.h:40: external/mesa/src/util/format/u_format.h:33:10: fatal error: 'pipe/p_format.h' file not found #include "pipe/p_format.h" ^~~~~~~~~~~~~~~~~ ... In file included from external/mesa/src/amd/compiler/aco_dominance.cpp:31: In file included from external/mesa/src/amd/compiler/aco_ir.h:33: In file included from external/mesa/src/compiler/nir/nir.h:40: external/mesa/src/util/format/u_format.h:33:10: fatal error: 'pipe/p_format.h' file not found #include "pipe/p_format.h" ^~~~~~~~~~~~~~~~~ ... In file included from external/mesa/src/amd/compiler/aco_instruction_selection.cpp:31: In file included from external/mesa/src/amd/common/ac_shader_util.h:32: In file included from external/mesa/src/compiler/nir/nir.h:40: external/mesa/src/util/format/u_format.h:33:10: fatal error: 'pipe/p_format.h' file not found #include "pipe/p_format.h" ^~~~~~~~~~~~~~~~~ 3 errors generated. Fixes: 8d07d661 ("glsl,nir: Switch the enum representing shader image formats to PIPE_FORMAT.") Signed-off-by: Mauro Rossi <[email protected]> Reviewed-by: Gert Wollny <[email protected]>
* nir: Flush to zero with OOB low exponents in ldexpJason Ekstrand2020-03-041-14/+41
| | | | | Reviewed-by: Arcady Goldmints-Orlov <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* zink. Added storage CISto descriptor pool.Duncan Hopkins2020-03-041-1/+2
| | | | | | | | | Added storage in descriptor pool for combined image samplers as well as uniform buffers. Stops some shaders from running through a pools storage faster than zinks internal tracking. Reviewed-by: Erik Faye-Lund <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4045> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4045>
* etnaviv: fix alpha test on GC3000Christian Gmeiner2020-03-043-2/+15
| | | | | | | | | | | | | | Store ref_value in PE_STENCIL_CONFIG_EXT as done by blob. Fixes following piglits: spec@ext_framebuffer_object@fbo-alphatest-formats spec@ext_packed_float@fbo-alphatest-formats spec@ext_texture_srgb@fbo-alphatest-formats Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028>
* etnaviv: update headers from rnndbChristian Gmeiner2020-03-048-55/+55
| | | | | | | Update to etna_viv commit 3bc187a. Signed-off-by: Christian Gmeiner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028>
* egl/wayland: Don't invalidate buffers on no-op resizeDaniel Stone2020-03-041-0/+4
| | | | | | | | | | | | | | | | The Wayland platform's resize_callback is invoked from libwayland-egl when wl_egl_window_resize() is called. The resize call is the only place for the application to insert dx/dy arguments to wl_surface_attach(). When modifying the cursor hotspot (as in wayland/wayland#148), we want to set dx/dy, but leave the surface size the same. If we get wl_egl_window_resize() with the same width and height argument as we already have, we do not need to invalidate our existing drawable. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4030> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4030>
* Revert "glx: convert glx_config_create_list to one big calloc"Andrii Simiklit2020-03-041-26/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 35fc7bdf0e6ad6547e39099e7060a3d89539b56d. Unfortunately mentioned commit introduced a memory leak because `driwindowsMapConfigs` and `createDriMode` functions allocate small memory portions for each element: 21,576 (232 direct, 21,344 indirect) bytes in 1 blocks are definitely lost in loss record 1,411 of 1,414 at 0x483A7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x5D4AA09: createDriMode (dri_common.c:291) by 0x5D4ABF5: driConvertConfigs (dri_common.c:310) by 0x5D58414: dri3_create_screen (dri3_glx.c:945) by 0x5D39829: AllocAndFetchScreenConfigs (glxext.c:815) by 0x5D39C57: __glXInitialize (glxext.c:941) by 0x5D3290A: GetGLXPrivScreenConfig (glxcmds.c:174) by 0x5D34F38: glXQueryExtensionsString (glxcmds.c:1307) by 0x4F83038: glXQueryExtensionsString (in /usr/local/lib/libGL.so.1.7.0) by 0x4F2EA6B: ??? (in /usr/lib/x86_64-linux-gnu/libwaffle-1.so.0.6.0) by 0x4F2A0D7: waffle_display_connect (in /usr/lib/x86_64-linux-gnu/libwaffle-1.so.0.6.0) by 0x498F42A: wfl_checked_display_connect (piglit-util-waffle.h:74) There is one more thing which disallow us to easily fix it are different element sizes for instance: `glx_config_create_list` allocates memory just for `glx_config`, `driwindowsMapConfigs` for `driwindows_config` and `createDriMode` for `__GLXDRIconfigPrivate`. Yes it is possible but size of such fix will be more big and complex than original one. So it make sense only if the malloc overhead really is a big problem there. Acked-by: Eric Engestrom <[email protected]> Signed-off-by: Andrii Simiklit <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3406> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3406>
* zink. Don't set incorrect sType in VkImportMemoryFdInfoKHR structVilya Harvey2020-03-041-1/+0
| | | | | | | | imfi.sType was being set to an invalid value, triggering a warning in Clang. The only valid value for imfi.sType is VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR which is the value it is being given at initialisation time, a few lines earlier. The incorrect value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, is supposed to be used in imfi.handleType instead - and indeed, handleType *is* being set to this value a few lines later. Reviewed-by: Erik Faye-Lund <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4034> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4034>
* turnip: support indirect drawHyunjun Ko2020-03-041-6/+49
| | | | | Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3976> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3976>
* android: gallium/auxiliary: fix "Unused source files" in tesselatorMauro Rossi2020-03-031-1/+2
| | | | | | | | | | | | Avoids the following Android Build System error: FAILED: build/make/core/binary.mk:1245: error: external/mesa/src/gallium/auxiliary/Android.mk: libmesa_gallium: Unused source files: tessellator/tessellator.hpp 10:24:30 ckati failed with: exit status 1 Fixes: bd0188f ("gallium/auxiliary: add the microsoft tessellator and a pipe wrapper.") Signed-off-by: Mauro Rossi <[email protected]> Acked-by: Dave Airlie <[email protected]>
* intel/gen12+: Disable mid thread preemption.Rafael Antognolli2020-03-033-0/+25
| | | | | | | | | | | | | Fixes a GPU hang in Car Chase. Cc: [email protected] v2: Add comment explaining why (Jason). Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4035> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4035>
* Revert "gallium/swr: Fix min/max range index draw"Krzysztof Raszkowski2020-03-032-16/+2
| | | | | | | This reverts commit 5e9a2c603f38308f7027d6a5e4575e5fc24c1bd5 Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4032> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4032>
* vc4: fix vc4_yuv_blit overwriting fragment constant buffer slot 0Chris Lord2020-03-031-0/+2
| | | | | | | | | | | | vc4_yuv_blit calls util_blitter_restore_constant_buffer_state without first calling util_blitter_save_fragment_constant_buffer_slot. This causes subsequent crashes in vc4_write_uniforms when using fragment shaders that reference YUV textures. Reviewed-by: Iago Toral Quiroga <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2581 Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3997> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3997>
* aco: handle v_add_co_u32_e64 in parse_base_offset()Rhys Perry2020-03-031-0/+2
| | | | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-By: Timur Kristóf <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3902> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3902>
* aco: fix carry-out size for wave32 v_add_co_u32_e64Rhys Perry2020-03-031-1/+1
| | | | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-By: Timur Kristóf <[email protected]> Fixes: e0bcefc3a0a ('aco/wave32: Use lane mask regclass for exec/vcc.') Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3902>
* gallium/swr: fix corruptions in Unigine HeavenJan Zielinski2020-03-034-137/+211
| | | | | | | | | | | | Few changes to fix the last corruptions in Heaven: - fix indirect TCS input when vertex/attribute index is not the same for each patch - use the correct functions to build loops in shader - fix using vmask for writting TCS output Reviewed-by: Krzysztof Raszkowski <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3980> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3980>
* st/va: GetConfigAttributes: check profile and entrypoint combinationSatyajit Sahu2020-03-031-2/+6
| | | | | | | | | | Added check if profile is supported or not for the entrypoint in GetConfigAttributes. Signed-off-by: Satyajit Sahu <[email protected]> Acked-by: Leo Liu <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3889> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3889>
* intel/isl: Implement D16_UNORM workarounds.Rafael Antognolli2020-03-035-4/+93
| | | | | | | | | | | | | | | | | | | | | | | | GEN:BUG:14010455700 (lineage 1808121037): "To avoid sporadic corruptions “Set 0x7010[9] when Depth Buffer Surface Format is D16_UNORM , surface type is not NULL & 1X_MSAA" Required for fixing ttps://gitlab.freedesktop.org/mesa/mesa/issues/2501. GEN:BUG:1806527549: "Set HIZ_CHICKEN (7018h) bit 13 = 1 when depth buffer is D16_UNORM." This one could fix a GPU hang in some workloads. v2: Implement WA in isl and add another similar WA (Jason). v3: Add flushes before changing chicken registers (Jason) v4: Depth flush and stall + end of pipe sync when changing registers (Jason). Reviewed-by: Jason Ekstrand <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3801> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3801>
* aco: keep track of which events are used in a barrierRhys Perry2020-03-031-19/+41
| | | | | | | | | | And properly handle unordered events so that they always wait for 0. Signed-off-by: Rhys Perry <[email protected]> Fixes: 93c8ebfa780 ('aco: Initial commit of independent AMD compiler') Reviewed-by: Daniel Schürmann <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3774> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3774>
* st/va/postproc: reallocate interlaced destination bufferThong Thai2020-03-031-4/+1
| | | | | | | | | | | | When the source buffer is progressive source, re-allocate the destination buffer as progressive if it isn't already - otherwise transcoding will fail. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1418 Signed-off-by: Thong Thai <[email protected]> Reviewed-by: Leo Liu <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4001> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4001>
* panfrost: fix transform feedbackLouis-Francis Ratté-Boulianne2020-03-031-0/+7
| | | | | | | | | | | | | | | | | | Fix different use cases for transform feedback by setting: - PIPE_CAP_PACKED_STREAM_OUTPUT=0 - PIPE_CAP_VIEWPORT_TRANSFORM_LOWERED=1 - PIPE_CAP_PSIZ_CLAMPED=1 This is enough for all dEQP xfb-related test cases to run successfully. Signed-off-by: Louis-Francis Ratté-Boulianne <[email protected]> Signed-off-by: Tomeu Vizoso <[email protected]> (Update dEQP expectations) Reviewed-by: Alyssa Rosenzweig <[email protected]> Acked-by: Daniel Stone <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2433> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2433>
* gallium: add PIPE_CAP_PSIZ_CLAMPEDLouis-Francis Ratté-Boulianne2020-03-033-0/+4
| | | | | | | | | | | This new capability indicates that the point size has been clamped. This also means that the gl_PointSize has been modified and that its value should be lowered for transform feedback, if needed. Signed-off-by: Louis-Francis Ratté-Boulianne <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Acked-by: Daniel Stone <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2433>
* gallium: add PIPE_CAP_VIEWPORT_TRANSFORM_LOWEREDLouis-Francis Ratté-Boulianne2020-03-033-0/+9
| | | | | | | | | | | This new capability indicates that the nir_lower_viewport_transform pass is enabled. This also means that the gl_Position value is modified and should be lowered for transform feedback, if needed. Signed-off-by: Louis-Francis Ratté-Boulianne <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Acked-by: Daniel Stone <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2433>
* gallium: add PIPE_CAP_PACKED_STREAM_OUTPUTLouis-Francis Ratté-Boulianne2020-03-033-0/+7
| | | | | | | | | | | Setting this cap to 0 (default is 1) should disable packing optimization for stream output (e.g. GL transform feedback captured variables). Signed-off-by: Louis-Francis Ratté-Boulianne <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Acked-by: Daniel Stone <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2433>
* glsl/linker: add xfb workaround for modified built-in variablesLouis-Francis Ratté-Boulianne2020-03-032-6/+20
| | | | | | | | | | | | | | | | | | | | | Some lowering passes modify the value of built-in variables in order for drivers to work properly. However, modifying such values will also break transform feedback as the captured value won't match what's expected. For example, on some hardware, the vertex shaders are expected to output gl_Position in screen space. However, the transform feedback captured value is still supposed to be the world-space coordinates (see nir_lower_viewport_transform). To fix that, we create a new variable that contains the pre-transformation value and use it for transform feedback instead of the built-in one. Signed-off-by: Louis-Francis Ratté-Boulianne <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Acked-by: Daniel Stone <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2433>
* glsl/linker: handle array/struct members for DisableXfbPackingLouis-Francis Ratté-Boulianne2020-03-036-0/+283
| | | | | | | | | | | | | | | | | | When varying packing is disabled for transform feedback and a xfb declaration points to an array element or structure member, the element/member should be aligned to the start of a slot as well. If that's not the case, a new varying is created and the element/member value is copied. There might a way to further optimize the number of slots allocated or the number of copies necessary if the performance cost is problematic. For example, in cases where simply padding the top level variable might correctly align all the captured values. Signed-off-by: Louis-Francis Ratté-Boulianne <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Acked-by: Daniel Stone <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2433>