summaryrefslogtreecommitdiff
path: root/src/gallium/drivers
AgeCommit message (Collapse)AuthorFilesLines
2018-12-12meson: libfreedreno depends upon libdrm (for fence support)Rhys Kidd1-3/+1
Error message building freedreno Gallium driver with meson: ../src/gallium/drivers/freedreno/freedreno_fence.c:27:21: fatal error: libsync.h: No such file or directory \#include <libsync.h> Fixes: 4aa69cc4257 ("meson: build freedreno") Signed-off-by: Rhys Kidd <rhyskidd@gmail.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2018-12-12virgl: force linear texturing supportErik Faye-Lund1-2/+3
When I made sure that half-float texture-filtering was required for ES3, I didn't realize that virgl doesn't report support for this correctly. This regressed the GLES version available on top of several drivers, including i965 from 3.2 to 2.0. This is going to need protocol changes to fix properly, so let's just restore the previous behavior by enabling floating-point filtering unconditionally for now. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Fixes: fcf9fcee3c8 "mesa/main: do not require float-texture filtering for es3" Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
2018-12-09nv50/ir: fix use-after-free in ConstantFolding::visitKarol Herbst1-33/+49
opnd() might delete the passed in instruction, but it's used through i->srcExists() later in visit v2: use continue instead return v3: use brackets for the outer if/else chain Signed-off-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2018-12-09nouveau: use atomic operations for driver statisticsKarol Herbst1-3/+4
multiple threads can write to those at the same time Signed-off-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2018-12-09nv50/ir: initialize relDegree staticlyKarol Herbst1-7/+16
this race condition is pretty harmless, but also pretty trivial to fix Signed-off-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2018-12-07shader-packingEric Anholt1-1/+2
2018-12-07tfuEric Anholt1-1/+1
2018-12-07vc4: Fix a leak of the transfer helper on screen destroy.Eric Anholt1-0/+3
Fixes: d009463a6549 ("vc4: Switch to using u_transfer_helper for MSAA maps.")
2018-12-07v3d: Fix a leak of the transfer helper on screen destroy.Eric Anholt1-0/+2
Fixes: 7a30517cce8f ("broadcom/vc5: Start adding support for rendering to Z32F_S8X24_UINT.")
2018-12-07v3d: Add VIR dumping of TMU config p0/p1.Eric Anholt1-14/+6
I had a bit of it for V3D 3.x, but didn't update it for 4.x.
2018-12-07v3d: Garbage collect unused uniforms code.Eric Anholt1-88/+0
2018-12-07v3d: Split most of TEXTURE_SHADER_STATE setup out of sampler views.Eric Anholt1-58/+69
For shader image load/store, we want most of this logic to be shared.
2018-12-07v3d: Avoid confusing auto-indenting in TEXTURE_SHADER_STATE packingEric Anholt1-4/+4
Having "v3dx_pack() {" under each #if branch would confuse emacs's indenter.
2018-12-07v3d: Fix handling of texture first_layer offsets for 3D textures.Eric Anholt1-5/+5
I think this bug predated adding v3d_layer_offset(). Noticed during an unrelated refactor.
2018-12-07v3d: Return the right gl_SampleMaskIn[] value.Eric Anholt1-8/+0
It's supposed to be the dispatched sample mask for this pixel, not the GL state's sample mask.
2018-12-07v3d: Don't forget to flush writes to UBOs.Eric Anholt2-5/+16
If someone did TF into a UBO, we might have left the TF job un-flushed at the point of reading.
2018-12-07v3d: Make an array for frag/vert texture state in the context.Eric Anholt7-42/+21
This simplifies a bunch of our texture handling, while introducing the slots necessary for adding new shader stages.
2018-12-07v3d: Put default vertex attribute values into the state uploader as well.Eric Anholt3-8/+12
The default attributes are long-lived (the state struct is cached), and only 256 bytes each.
2018-12-07v3d: Create a state uploader for packing our shaders together.Eric Anholt4-13/+35
Shaders are usually quite short, and are private to the context. We can save memory and reduce the work the kernel needs to do at exec time by packing them together in a stream uploader for long-lived state.
2018-12-07v3d: Update simulator cache flushing code to match the kernel better.Eric Anholt1-13/+19
We were missing the invalidate between bin and render (possibly relevant for SSBOs), and still trying to flush the nonexistent L2C on 3.3+.
2018-12-07v3d: Use the TFU to do generatemipmap.Eric Anholt7-1/+175
This is a separate, dedicated hardware unit for texture layout conversions and mipmap generation.
2018-12-07v3d: Add the V3D TFU submit interface to the simulator.Eric Anholt3-20/+90
The TFU lets us format raster and SAND images into formats that can be read by the texture engine, and do mipmap generation. The UAPI comes from drm-next e69aa5f9b97f ("Merge tag 'drm-misc-next-2018-12-06' of git://anongit.freedesktop.org/drm/drm-misc into drm-next")
2018-12-07v3d: Use combined input/output segments.Eric Anholt1-4/+7
The HW apparently has some issues (or at least a much more complicated VCM calculation) with non-combined segments, and the closed source driver also uses combined I/O. Until I get the last CTS failure resolved (which does look plausibly like some VPM stomping), let's use combined I/O too.
2018-12-07v3d: Add missing OES_half_float_linear support.Eric Anholt1-0/+1
We were exposing ARB_texture_float, but apparently not the OES subset flag. Fixes regression from GLES3 support to GLES2. Fixes: fcf9fcee3c8a ("mesa/main: do not require float-texture filtering for es3")
2018-12-07v3d: Add support for RGBA_SRGB along with BGRA_SRGB.Eric Anholt1-0/+2
This is the actual native format for the hardware, without swizzling. Noticed while debugging why GLES3 disappeared.
2018-12-07freedreno/ir3: track max flow control depth for a5xx/a6xxRob Clark2-4/+4
Rather than just hard-coding BRANCHSTACK size. Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-12-07freedreno/ir3: sync instr/disasmRob Clark1-1/+1
Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-12-07freedreno/a6xx: blitter fixesRob Clark2-3/+80
Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-12-07freedreno: update generated headersRob Clark7-35/+56
Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-12-07freedreno/a5xx+a6xx: remove unused fs/vs pvt memRob Clark4-20/+0
copy/pasta from older gens Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-12-07freedreno: remove unused fd_surface fieldsRob Clark1-5/+0
Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-12-06freedreno: Add support for EXT_multisampled_render_to_textureKristian H. Kristensen3-1/+7
There is not much to do in freedreno - tile layout and multisample state for gmem renderings is programmed based on the pfb sample count, while resolve blits take the destination sample count from the resource. Reviewed-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org>
2018-12-06freedreno/a6xx: MSAARob Clark10-24/+74
Reviewed-by: Kristian H. Kristensen <hoegsberg@chromium.org> Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-12-06amd: remove support for LLVM 6.0Samuel Pitoiset7-195/+38
User are encouraged to switch to LLVM 7.0 released in September 2018. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2018-12-05gallium: Android build fixesKristian H. Kristensen1-0/+1
A couple of simple fixes for building on Android with autotools. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2018-12-05nir: Make boolean conversions sized just like the othersJason Ekstrand1-4/+4
Instead of a single i2b and b2i, we now have i2b32 and b2iN where N is one if 8, 16, 32, or 64. This leads to having a few more opcodes but now everything is consistent and booleans aren't a weird special case anymore. Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2018-12-03nouveau: set texture upload budgetIlia Mirkin3-3/+6
It doesn't seem like the exact number has too much effect on the performaince in "teximage". However setting it to just about anything prevents some OOMs from getting hit. These values are not well-tuned, but don't seem too bad. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2018-12-03nv50,nvc0: add explicit handling of PIPE_CAP_MAX_VERTEX_ELEMENT_SRC_OFFSETIlia Mirkin2-0/+4
Since the max attrib stride is 2048, the max src offset makes sense as 2047. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2018-12-03nv50: always keep TSC slot 0 boundIlia Mirkin3-0/+31
All TXF operations implicitly use sampler 0, and fail if it's not bound to anything. This does not happen in LINKED_TSC mode, but we don't currently use this. We ensure that TSC entry at id 0 has the SRGB conversion bit enabled (and all samplers we normally generate will too). Then when the TSC at *slot* 0 (not to be confused with entry 0 in the global TSC table) is unbound, we bind it to entry 0. This way, TXF operations are not dependent on there being a regular sampler bound there. Fixes arb_texture_buffer_object-subdata-sync among others. (TBO's are particularly susceptible to this as they don't bind a sampler.) Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2018-12-04virgl: fix const warning on debug flags.Dave Airlie2-3/+3
Fixes: 8d4bb6e5c (virgl: Add command and flags to initiate debugging on the host (v2))
2018-12-02nv50,nvc0: Fix gallium nine regression regarding sampler bindingsKarol Herbst2-16/+12
The new approach is that samplers don't get unbound even if they won't be used in a draw and we should just leave them be as well. Fixes a regression in multiple windows games using gallium nine and nouveau. v2: adjust num_samplers to keep track of the highest sampler bound v3: rework how to set the new value of num_samplers Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106577 Fixes: 4d6fab245eec3880e2a59424a579851f44857ce8 "cso: don't track the number of sampler states bound" Signed-off-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2018-11-30virgl: don't mark buffers as unclean after a writeGurchetan Singh2-1/+10
We can mark the buffer unclean if it's ever bound as a TBO, SSBO, ABO, or image. This improves dEQP-GLES3.performance.buffer.data_upload.function_call.map_buffer_range.new_specified_buffer.flag_write_full.stream_draw from 9.58 MB/s to 451.17 MB/s. v2: Track buffer cleanliness as a function of bindings (Ilia). v3: virgl_modify_clean --> virgl_dirty_res (Erik) Tested-By: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
2018-11-30virgl: avoid large inline transfersGurchetan Singh1-1/+5
We flush everytime the command buffer (16 kB) is full, which is quite costly. This improves dEQP-GLES3.performance.buffer.data_upload.function_call.buffer_data.new_buffer.usage_stream_draw from 111.16 MB/s to 1930.36 MB/s. In addition, I made the benchmark produce buffers from 0 --> VIRGL_MAX_CMDBUF_DWORDS * 4, and tried ((VIRGL_MAX_CMDBUF_DWORDS * 4) / 2), ((VIRGL_MAX_CMDBUF_DWORDS * 4) / 4), etc. I didn't notice any clear differences, so let's just go with the most obvious heuristic. Tested-By: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
2018-11-30virgl: quadruple command buffer sizeGurchetan Singh1-1/+1
Tested running WebGL aquarium on Nvidia host (10,000 fishes) This moves us from 7 fps to 9 fps. After quadrupling, performance gains diminish. v2: Remove change ID (Erik) Tested-By: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
2018-11-28radeonsi: add memory management stress tests for GDSMarek Olšák2-0/+48
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu: add support for allocating GDS and OA resourcesMarek Olšák1-1/+3
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28radeonsi: allow si_cp_dma_clear_buffer to clear GDS from any IBMarek Olšák4-31/+33
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu,radeon: pass vm_alignment to buffer_from_handleMarek Olšák4-3/+10
Acked-by: Christian König <christian.koenig@amd.com>
2018-11-28radeonsi: fix is_oneway_access_only for bindless imagesMarek Olšák1-6/+23
2018-11-28radeonsi/nir: parse more information about bindless usageMarek Olšák1-4/+32
fill more tgsi_shader_info fields.