summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* compiler: move glsl_interface_packing enum to shader_enums.hTimothy Arceri2017-07-264-27/+11
| | | | | | This allows us to drop the duplicate gl_uniform_block_packing enum. Reviewed-by: Nicolai Hähnle <[email protected]>
* mesa/st: fix unused variable warningsTimothy Arceri2017-07-264-10/+11
| | | | | Reviewed-by: Grazvydas Ignotas <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: move st_pipe_format_to_mesa_format() call to where its usedTimothy Arceri2017-07-261-2/+1
| | | | | Reviewed-by: Grazvydas Ignotas <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* gallium/util: fix unused variable warningTimothy Arceri2017-07-261-3/+5
| | | | | Reviewed-by: Grazvydas Ignotas <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* mesa: drop useless assertTimothy Arceri2017-07-261-1/+0
| | | | | | | NewBufferObj() is called when the shared state is allocated so we wouldn't get this far if it was NULL. Reviewed-by: Samuel Pitoiset <[email protected]>
* mesa: call binding functions directly from glDeleteBuffersTimothy Arceri2017-07-261-3/+9
| | | | | | This avoids useless error checking. Reviewed-by: Samuel Pitoiset <[email protected]>
* mesa: move static binding functions above _mesa_DeleteBuffers()Timothy Arceri2017-07-261-207/+205
| | | | Reviewed-by: Samuel Pitoiset <[email protected]>
* mesa: don't try to re-generate the default bufferTimothy Arceri2017-07-261-6/+6
| | | | | | It should have been created by this point. Reviewed-by: Samuel Pitoiset <[email protected]>
* broadcom/vc4: Switch the V3D 2.1 XML over to restricted address fields.Eric Anholt2017-07-251-4/+4
| | | | | | This keeps the flags out of v3d_decode.c's output. In the generated code, only the unpack functions see any change (where they now get the restricted start value), and vc4 doesn't use the unpack functions yet.
* broadcom/genxml: Support address fields with <32 bitsEric Anholt2017-07-251-1/+1
| | | | | | | | | | I was writing the XML such that the address field overlapped various flags in the alignment bits, which caused pain when trying to unpack for decode. Instead, keep the XML matching the docs (address fields don't overlap), and just infer the appropriate shift value during decode. During pack, the address is just applied to the appropriate bits already, ignoring the sub-byte start/end fields.
* broadcom/vc4: Use the RA callback to improve register selection's choices.Eric Anholt2017-07-251-1/+52
| | | | | | | | | | | | | | | We simply pick r4 if available (anything else would force a MOV), then round-robin through accumulators (avoids physical regfile RAW delay slots), then round-robin through the physical regfile. The effect on instruction count is pretty impressive: total instructions in shared programs: 76563 -> 74526 (-2.66%) instructions in affected programs: 66463 -> 64426 (-3.06%) and we could probably do better with a little heuristic of "if we're going to choose a physical reg, and other operands of instructions using this as a src have the same physical regfile, then use the other regfile".
* ra: Add a callback for selecting a register from what's available.Eric Anholt2017-07-252-14/+82
| | | | | | | | | | | | | | | | VC4 has had a tension, similar to pre-Sandybridge Intel, where we want to use low-numbered registers (more parallelism on Intel, fewer delay slots on vc4), but in order to give instruction scheduling the most freedom to avoid delays we want to round-robin between registers of the same cost. Our two heuristics so far have chosen one end or the other of that tradeoff. The callback, instead, hands the driver the set of registers that are available, and the driver gets to make its own choice. This will be used in vc4 to round-robin between registers of the same cost, and might be used in the future for improving bank selection. Reviewed-by: Nicolai Hähnle <[email protected]>
* ra: Don't put a node in its own adjacency set.Eric Anholt2017-07-251-13/+10
| | | | | | | | All the paths looping over adjacency had guards against considering themselves (the non-obvious one was ra_any_neighbors_conflict(), which has in_stack set). Reviewed-by: Nicolai Hähnle <[email protected]>
* ra: Pull the body of a loop out to a helper function.Eric Anholt2017-07-251-12/+19
| | | | | | | I was going to indent this code another level, and decided it would be easier to read as a helper. Reviewed-by: Nicolai Hähnle <[email protected]>
* broadcom/vc4: Scissor blits performed using the rendering engine.Eric Anholt2017-07-251-0/+9
| | | | | | Without this, a BlitFramebuffer would mark the whole framebuffer as being changed (so we emit loads/stores of all of it) rather than just the modified subset.
* broadcom/vc4: Prefer blit via rendering to the software fallback.Eric Anholt2017-07-251-6/+8
| | | | | | | I don't know how I managed to leave this here for so long. Found when working on a 1:1 overlapping blit extension for X11. Cc: [email protected]
* broadcom/vc4: Switch the Viewport Center fields to a fixed-point representation.Eric Anholt2017-07-252-4/+4
| | | | | | This gets us automatic CL decoding to a floating-point value, and drops a magic number from the emit code. 250x250 shader runner tests now say they have a center of 125.0 instead of 2000.
* broadcom/vc4: Use the XML decoder for CL dumping.Eric Anholt2017-07-253-443/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The VC4_DEBUG_CL output goes from: 0x00000010 0x00000010: 0x06 VC4_PACKET_START_TILE_BINNING 0x00000011 0x00000011: 0x38 VC4_PACKET_PRIMITIVE_LIST_FORMAT 0x00000012 0x00000012: 0x12 0x00000013 0x00000013: 0x66 VC4_PACKET_CLIP_WINDOW 0x00000014 0x00000014: 0x00 0x00000015 0x00000015: 0x00 0x00000016 0x00000016: 0x00 0x00000017 0x00000017: 0x00 0x00000018 0x00000018: 0xfa 0x00000019 0x00000019: 0x00 0x0000001a 0x0000001a: 0xfa 0x0000001b 0x0000001b: 0x00 to: 0x00000010 0x00000010: 0x06 Start Tile Binning 0x00000011 0x00000011: 0x38 Primitive List Format Data Type: 1 (16-bit index) Primitive Type: 2 (Triangles List) 0x00000013 0x00000013: 0x66 Clip Window Clip Window Height in pixels: 250 Clip Window Width in pixels: 250 Clip Window Bottom Pixel Coordinate: 0 Clip Window Left Pixel Coordinate: 0 v2: Squash in robher's fixes for Android
* broadcom/genxml: Introduce a V3D packet/struct decoder.Eric Anholt2017-07-259-0/+1066
| | | | | | | This is copied from Intel's XML decoder, modified to handle V3D's byte-oriented packets. v2: Squash in robher's fixes for Android
* broadcom: add editorconfigEric Anholt2017-07-251-0/+3
| | | | This is the same 8-space style used in the vc4 and vc5 gallium drivers.
* intel/decoder: Reuse the gen_make_gen() helper.Eric Anholt2017-07-251-3/+1
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/decoder: Reuse the MAX2 macro instead of defining another one.Eric Anholt2017-07-251-3/+1
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* svga: implement MSAA alpha_to_one featureBrian Paul2017-07-255-1/+57
| | | | | | | | | | | | | The device doesn't directly support this feature so we implement it with additional shader code which sets the color output(s) w component to 1.0 (or max_int or max_uint). Fixes 16 Piglit ext_framebuffer_multisample/*alpha-to-one* tests. v2: only support unorm/float buffers, not int/uint, per Roland. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Charmaine Lee <[email protected]>
* svga: rework the FS white fragments codeBrian Paul2017-07-252-33/+21
| | | | | | | | | | When we forcibly write white to FS outputs (for XOR mode emulation) we were using a temp register. But that's not really necessary. This also fixes the case of writing white to multiple color buffers. Subsequent changes will build on this. Reviewed-by: Charmaine Lee <[email protected]>
* gallium/util: s/unsigned/enum tgsi_texture_type/Brian Paul2017-07-254-21/+24
| | | | Reviewed-by: Roland Scheidegger <[email protected]>
* drirc: whitelist glthread for Overlord 1+2, Oil Rush, War Thunder, Saints Row 2Kamil Páral2017-07-251-2/+17
| | | | | | | | | Performance delta on Core i5-4570 + Radeon R9 270: Overlord: +20% in certain locations Overlord II: +20% in certain locations Oil Rush: +12% in most locations War Thunder: +4-9% in benchmarks Saints Row 2: +10-35% in certain locations
* i965: perf: flush batchbuffers at the beginning of queriesLionel Landwerlin2017-07-251-8/+8
| | | | | | | | | | | | | | | | | | | | | As Chris commented, it makes more sense to have batch buffer flushes before the query. Usually applications like frame_retrace do a series of queries and in that case, with flushes at the end of the queries, we might still have the first query contained in 2 different batchs. More generally it would be quite usual to have the query contained in 2 batch buffers because we never now what's the fill rate of the current batch buffer. If we move the flushing at the beginning of the queries, it's pretty much guaranteed that queries will be contained in a single batch buffer (unless the amount of commands is huge, but then it's only fair to include reloading request times in the measurements). Fixes: adafe4b733c02 ("i965: perf: minimize the chances to spread queries across batchbuffers") Reported-by: Chris Wilson <[email protected]> Signed-off-by: Lionel Landwerlin <[email protected]> Cc: "17.2 17.1" <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* st/dri2: Return invalid modifier when no driver supportDaniel Stone2017-07-251-0/+6
| | | | | | | | | Always initialise whandle.modifier for DRIImage modifier queries, so if the driver doesn't support it then we return false for the query. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Fixes: d33fe8b84e45 ("st/dri: enable DRIimage modifier queries")
* st/dri: Check get-handle return value in queryImageDaniel Stone2017-07-251-12/+18
| | | | | | | | In the DRIImage queryImage hook, check if resource_get_handle() failed and return FALSE if so. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* r600: Add support for B5G5R5A1.Michal Srb2017-07-251-0/+6
| | | | | | Fixes rendercheck errors when using glamor acceleration in X server. Signed-off-by: Marek Olšák <[email protected]>
* radeon/vcn: move message buffer to vram for nowLeo Liu2017-07-251-1/+2
| | | | | | | To workaround an unknown bug. Signed-off-by: Leo Liu <[email protected]> Acked-by: Christian König <[email protected]>
* trace: Correct transfer box size calculation.Jose Fonseca2017-07-251-9/+8
| | | | | | | | | | For textures we must not approximate the calculation with `stride * height`, or `slice_stride * depth`, as that can easily lead to buffer overflows, particularly for partial transfers. This should address the issue that Bruce Cherniak found and diagnosed. Reviewed-by: Roland Scheidegger <[email protected]>
* mesa: add active_shader_program() helperSamuel Pitoiset2017-07-251-31/+32
| | | | | | | To reduce code duplication. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* mesa: add bind_program_pipeline() helperSamuel Pitoiset2017-07-251-34/+21
| | | | | | | To reduce code duplication. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* egl: fix whitespace issues from eglimage codeTapani Pälli2017-07-251-10/+10
| | | | | Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* util: fix warning/error on 32bit buildTapani Pälli2017-07-251-2/+2
| | | | | | | | | Add uintptr_t cast to fix 'cast to pointer from integer of different size' warning on 32bit build (build error on Android M). Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* r600g: constify some args at r600_asm.cConstantine Charlamov2017-07-251-5/+6
| | | | | Signed-off-by: Constantine Kharlamov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* r600g: remove unused "bc" args, and one unneeded forward declarationConstantine Charlamov2017-07-251-45/+40
| | | | | | | To ease review just highlight "bc," string. Signed-off-by: Constantine Kharlamov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radv: only report external semaphore info for opaque fd.Dave Airlie2017-07-251-5/+10
| | | | | | | | | | Until we support sync fd, don't report the info. Fixes CTS dEQP-VK.api.external.semaphore.sync_fd.* from crashing. Fixes: eaa56eab6 (radv: initial support for shared semaphores (v2)) Reviewed-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* i965: Simplify HiZ clears a bitJason Ekstrand2017-07-241-17/+8
| | | | | | | No need for all that switching when we can just assign a nice little variable with the number of layers. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Use {} to initialize GENX_* structs.Rafael Antognolli2017-07-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | gen4 have commands which start with KernelStartPointer, which is a struct, so if we initialize it struct = { 0 }, we get warnings on some compilers: "GCC (pre 4.9?) can throw a Wmissing-braces on[1] while clang -Wmissing-field-initializers [2]." - Emil [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119 [2] https://bugs.llvm.org/show_bug.cgi?id=21689 This change works around that and will silence such warnings. It is both a GCC and a clang extension. v2: - Use {} instead of memset macro (Matt) Signed-off-by: Rafael Antognolli <[email protected]> Cc: Jason Ekstrand <[email protected]> Cc: Matt Turner <[email protected]> Cc: Emil Velikov <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* st/mesa: create framebuffer iface hash table per st managerCharmaine Lee2017-07-248-27/+113
| | | | | | | | | | | | | | | | With commit 5124bf98239, a framebuffer interface hash table is created in st_gl_api_create(), which is called in dri_init_screen_helper() for each screen. When the hash table is overwritten with multiple calls to st_gl_api_create(), it can cause race condition. This patch fixes the problem by creating a framebuffer interface hash table per state tracker manager. Fixes crash with steam. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101876 Fixes: 5124bf98239 ("st/mesa: add destroy_drawable interface") Tested-by: Christoph Haag <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* radv: fix buffer views on SI/CIK.Dave Airlie2017-07-241-0/+5
| | | | | | | | | Fixes CTS dEQP-VK.memory.pipeline_barrier.host_write_uniform_texel_buffer.1024 on SI/CIK with radv. Fixes: f4e499ec (radv: add initial non-conformant radv vulkan driver) Reviewed-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* egl/wayland: Ignore invalid modifiersDaniel Stone2017-07-241-0/+4
| | | | | | | | | | | If the underlying driver does not support modifiers, dmabuf will still advertise formats through the 'modifier' event, but send them with an invalid modifier. Ignore them if this is the case, rather than passing them through to the driver. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Fixes: 02cc35937277 ("egl/wayland: Use linux-dmabuf interface for buffers")
* mesa: return GL_OUT_OF_MEMORY if NewSamplerObject failsSamuel Pitoiset2017-07-241-4/+12
| | | | | | | This is similar to other functions that create objects. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* mesa: pass the 'caller' function to create_samplers()Samuel Pitoiset2017-07-241-4/+5
| | | | | | | To return GL_OUT_OF_MEMORY if NewSamplerObject fails. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* mesa: add compressed_tex_sub_image_{error,no_error} helpersSamuel Pitoiset2017-07-241-36/+65
| | | | | | | To avoid inlining compressed_tex_sub_image() a bunch of times. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* intel/blorp: ship blorp_genX_exec.h within the tarballEmil Velikov2017-07-241-0/+1
| | | | | Fixes: c9cb37b2a6c ("intel/blorp: Add a partial resolve pass for MCS") Signed-off-by: Emil Velikov <[email protected]>
* egl: guard wayland header dep. tracking behind HAVE_PLATFORM_WAYLAND17.2-branchpointEmil Velikov2017-07-241-1/+1
| | | | | | | | | Otherwise we'll attemt to generate the header even we don't need to. In that case the dependencies may not be met, leading to build failure. Fixes: 166852e "configure.ac: rework wayland-protocols handling" Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
* swrast: add dri2ConfigQueryExtension to the correct extension listEmil Velikov2017-07-241-0/+1
| | | | | | | | | The extension should be in the list as returned by getExtensions(). Seems to have gone unnoticed since close to nobody wants to change the vblank mode for the software driver. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Alex Deucher <[email protected]>