summaryrefslogtreecommitdiffstats
path: root/src/freedreno
Commit message (Collapse)AuthorAgeFilesLines
* turnip: add .clang-formatChia-I Wu2019-03-1120-1093/+1027
| | | | Add and apply .clang-format.
* turnip: Implement pipe-less param query.Bas Nieuwenhuizen2019-03-113-15/+31
|
* turnip: move tu_gem.c to tu_drm.cBas Nieuwenhuizen2019-03-112-1/+1
|
* turnip: Stop hardcoding the msm version check.Bas Nieuwenhuizen2019-03-111-1/+2
|
* turnip: Add image layout calculations.Bas Nieuwenhuizen2019-03-113-0/+135
|
* turnip: Fix memory mapping.Bas Nieuwenhuizen2019-03-111-1/+2
|
* turnip: Fix bo allocation after we stopped using libdrm_freedreno ...Bas Nieuwenhuizen2019-03-112-17/+9
| | | | | Al this figuring out new errors is why I don't like reinventing the wheel.
* turnip: Add 630 to the list.Bas Nieuwenhuizen2019-03-111-0/+1
|
* turnip: Don't return from tu_stub funcsChad Versace2019-03-111-7/+0
| | | | | Since the macros are lowercase and look like normal functions, that they change control flow with a hidden return is surprising.
* turnip: Fix 'unused' warningsChad Versace2019-03-114-9/+26
| | | | Now turnip builds without warnings on my machine.
* turnip: Add TODO fileChad Versace2019-03-111-0/+3
|
* turnip: Replace fd_bo with tu_boChad Versace2019-03-114-10/+211
| | | | (olv, after rebase) remove inc_drm_uapi
* turnip: Use vk_errorf() for initialization error messagesChad Versace2019-03-111-21/+8
| | | | This small cleanup better prepares turnip for VK_EXT_debug_report.
* turnip: Add TODO for Android loggingChad Versace2019-03-111-0/+2
|
* turnip: Require DRM device version >= 1.3Chad Versace2019-03-111-0/+17
| | | | Because the driver will require support for iova.
* turnip: Fix indentationChad Versace2019-03-111-2/+2
|
* turnip: Fix a real -Wmaybe-uninitializedChad Versace2019-03-111-1/+1
|
* turnip: Use vk_outarray in all relevant public functionsChad Versace2019-03-111-75/+35
|
* turnip: Fix result of vkEnumerate*ExtensionPropertiesChad Versace2019-03-111-0/+9
| | | | | Given an unsupported layer name, the functions must return VK_ERROR_LAYER_NOT_PRESENT.
* turnip: Fix result of vkEnumerate*LayerPropertiesChad Versace2019-03-111-14/+4
| | | | | The functions must not return VK_ERROR_LAYER_NOT_PRESENT. The spec reserves that error for vkEnumerate*ExtensionProperties.
* turnip: Fix indentation in function signaturesChad Versace2019-03-1119-652/+652
| | | | | Due to s/anv/tu/, in many function signatures the indentation of parameters was off-by-one.
* turnip: Disable more features.Bas Nieuwenhuizen2019-03-111-19/+19
|
* turnip: Initialize memory type in requirements.Bas Nieuwenhuizen2019-03-111-2/+2
|
* turnip: Cargo cult the Intel heap size functionality.Bas Nieuwenhuizen2019-03-111-5/+18
|
* turnip: Report a memory type and heap.Bas Nieuwenhuizen2019-03-111-1/+17
|
* turnip: Add buffer allocation & mapping support.Bas Nieuwenhuizen2019-03-112-6/+25
|
* turnip: Fix newly introduced warning.Bas Nieuwenhuizen2019-03-111-0/+2
|
* turnip: Remove abort.Bas Nieuwenhuizen2019-03-111-1/+0
|
* turnip: Gather some device info.Bas Nieuwenhuizen2019-03-113-2/+60
|
* turnip: Fix up detection of device.Bas Nieuwenhuizen2019-03-111-4/+3
|
* turnip: Drop Makefile.am and Android.mkChad Versace2019-03-113-459/+0
| | | | | | | | | | The Makefile.am doesn't work. I tried fixing it but gave up because I don't understand Autotools. I strongly suspect the Android.mk also doesn't work. Rather than maintain the broken build files, let's delete them and re-add working build files if-and-when we need them. (Maybe we'll be lucky and turnip will never need to support Autotools!).
* turnip: Add driver skeleton (v2)Bas Nieuwenhuizen2019-03-1131-0/+9890
| | | | | | | | | | | | | | | | | meson files have been updated, autotools and android still need updating. Only build tested. v2 (chadv): - Rebase onto master. - Fix build breakage in Python scripts. - Drop the WSI code. The internal WSI apis have changed recently, and will likely change again before the driver goes upstream. To avoid unnecessary rebase work, let's drop the WSI code and re-add it when we're ready to really use WSI. (olv, after rebase) do not enable freedreno by default on ARM
* freedreno/ir3: turn on [iu]mul_highRob Clark2019-03-081-0/+4
| | | | | | | | | | Which also requires uadd_carry lowering Until recently this was lowered in glsl ir so it went unnoticed that we weren't lowering it. Fixes: 1d8994a63b5 glsl: [u/i]mulExtended optimization for GLSL Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: track register pressure in schedRob Clark2019-03-032-9/+90
| | | | | | | | | | | | | | | Not a perfect solution, and the "pressure" target is hard-coded. But it doesn't really seem to much in the common case, and avoids exploding register usage in dEQP ssbo tests. So this should serve as a stop-gap solution until I have time to re- write the scheduler. Hurts slightly in instruction count, but gains (reduces) slightly the register usage in shader-db. Fixes ~150 dEQP-GLES31.functional.ssbo.* that were failing due to RA fail. Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: add Sethi–Ullman numbering passRob Clark2019-03-038-5/+143
| | | | Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: include nopN in expanded instruction countRob Clark2019-03-031-1/+1
| | | | Signed-off-by: Rob Clark <[email protected]>
* freedreno: Fix a couple of warningsKristian H. Kristensen2019-02-281-1/+1
| | | | Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/ir3: gsampler2DMSArray fixesRob Clark2019-02-262-30/+36
| | | | | | | | | Array index should come before sample-id. And exclude all isam variants (which take integer texel coords) from adding of offset. Fixes dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_*_2d_array Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3/a6xx: fix atomic shader outputsRob Clark2019-02-261-0/+8
| | | | | | | | | | We also need to put in the output mov. Possibly we could just fixup the output register to read it directly from the dummy, but that is more work and I guess dEQP is probably the only time you encounter this. Fixes dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_literal_fragment Signed-off-by: Rob Clark <[email protected]>
* freedreno/a6xx: vertex_id is not _zero_basedRob Clark2019-02-261-0/+23
| | | | | | Fixes dEQP-GLES31.functional.draw_base_vertex.draw_elements_base_vertex.builtin_variable.vertex_id Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3/a6xx: fix non-ssa atomic dstRob Clark2019-02-261-0/+5
| | | | | | | | | | We weren't propagating the array info for cases where result of atomic is array/reg. This can happen, for example, if result is part of a phi web lowered to regs. Fixes dEQP-GLES31.functional.ssbo.atomic.compswap.* Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: use nopN encoding when possibleRob Clark2019-02-263-6/+35
| | | | | | | | | | | | | Use the (nopN) encoding for slightly denser shaders.. this lets us fold nop instructions into the previous alu instruction in certain cases. Shouldn't change the # of cycles a shader takes to execute, but reduces the size. (ex: glmark2 refract goes from 168 to 116 instructions) Currently only enabled for a6xx, but I think we could enable this for a5xx and possibly a4xx. Signed-off-by: Rob Clark <[email protected]>
* freedreno/a6xx: fix border-color offsetRob Clark2019-02-221-2/+2
| | | | | | | Fixes nearly all of dEQP-GLES31.functional.texture.border_clamp.* when run after a test that binds textures used in vertex shader. Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: don't hardcode wrmaskRob Clark2019-02-221-5/+6
| | | | | | | | | Fixes dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.vertex.samplercubeshadow and few other similar tests that do multiple texture fetches into individual components of a packet output. Mostly works around the issue mentioned in ra_block_find_definers(). Signed-off-by: Rob Clark <[email protected]>
* freedreno/a6xx: enable tiled imagesRob Clark2019-02-211-0/+6
| | | | | | | Turns out we can write to tiled images as well as read. This avoids having to linearize or do the tiling in the shader. Signed-off-by: Rob Clark <[email protected]>
* freedreno/a6xx: samplerBuffer fixesRob Clark2019-02-201-2/+11
| | | | | | | | | | | | | | Use the 'UNK31' bit (which should probably be called 'BUFFER') for samplerBuffer case, which increases the size of supported buffer texture beyond 2^15 elements. Also need to fix the 2nd coord injected to handle the tex instructions that take integer coords. Fixes dEQP-GLES31.functional.texture.texture_buffer.render.as_fragment_texture.buffer_size_131071 and similar Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3/a6xx: use ldib for ssbo readsRob Clark2019-02-201-24/+10
| | | | | | | | | | | | | ... instead of isam. It seems like when using isam, plus atomics, we can have the problem of old data being in the texture cache. Plus this way we don't have to load a component at a time. Note that blob still seems to use isam in some cases. I suppose it might be preferable in the case of loading a single component, when atomics are not in the picture (or that the ssbo does not need to otherwise be coherent). Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: sync instr/disasm and add ldib encodingRob Clark2019-02-204-14/+42
| | | | | | | | | | Resync disasm and instr header from envytools, and add ldib encoding. This replaces an opcode from a3xx which was never seen in practice, since that seemed easier than dealing with the same opc # meaning a different thing on a6xx. (Not really sure if 'sti' was actually a real thing, I think it was only seen in fuzzing.) Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3/a6xx: fix load_ssbo barrier type.Rob Clark2019-02-201-2/+2
| | | | | | | Silly copy/pasta bug, since load_image is actually the same instruction but different barrier class. Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: rename put_dst()Rob Clark2019-02-203-9/+9
| | | | | | | This was overlooked when it moved to ir3_context.c and ceased to be static.. Signed-off-by: Rob Clark <[email protected]>