summaryrefslogtreecommitdiffstats
path: root/src/intel
Commit message (Collapse)AuthorAgeFilesLines
* intel/perf: create a vtable entries for buffer object map/unmapMark Janes2019-08-072-0/+5
| | | | | | These operations are needed to refactor subsequent methods into perf Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move client reference counts into perfMark Janes2019-08-072-0/+32
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move open_perf into perfMark Janes2019-08-072-0/+47
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move close_perf into perfMark Janes2019-08-072-0/+18
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: create a vtable entry for emit_mi_flushMark Janes2019-08-071-0/+1
| | | | | | This method is needed to move subsequent methods into perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move snapshot_statistics_registers into perfMark Janes2019-08-072-0/+30
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move query_object into perfMark Janes2019-08-071-1/+73
| | | | | | Query objects can now be encapsulated within the perf subsystem. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: create a vtable entry for store_register_mem64Mark Janes2019-08-071-0/+2
| | | | | | This method is needed to move subsequent methods into perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move free_sample_bufs into perfMark Janes2019-08-072-0/+11
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move reap_old_sample_buffers into perfMark Janes2019-08-072-0/+25
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move get_free_sample_buf into perfMark Janes2019-08-072-0/+20
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move the perf context into perfMark Janes2019-08-071-0/+57
| | | | | | | | | | | | The "context" that is necessary to submit and process perf commands to the hardware was previously present in the brw_context.perfquery struct. This commit moves it into perf and provides a more understandable name. The intention is for this struct to be private, when all methods that access it are migrated into perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move get_metric_id to perfMark Janes2019-08-072-0/+36
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move oa_sample_buf structure to perfMark Janes2019-08-071-0/+125
| | | | | | | | oa_sample_buf holds the data provided by the kernel that will be collated into performance metrics. Since this functionality will be implemented in perf, the struct needs to be defined there. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: enumerate query-based metrics in perfMark Janes2019-08-072-0/+236
| | | | | | | Iris and i965 both need to enumerate the available metrics, so these routines must be located in perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: move perf-related constants to common locationMark Janes2019-08-071-0/+21
| | | | | | | | The perf subsystem needs several macro definitions that were duplicated in Iris and i965 headers. Place these macros within perf, if the perf implementation contains the only references to the values. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: create a vtable entry for capture_frequency_stat_registerMark Janes2019-08-071-0/+2
| | | | | | In preparation for calling both Iris and i965 implementions from perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: create a vtable entry for batchbuffer_flushMark Janes2019-08-071-0/+2
| | | | | | In preparation for calling both Iris and i965 implementions from perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: create a vtable entry for emit_report_countMark Janes2019-08-071-0/+4
| | | | | | In preparation for calling both Iris and i965 implementions from perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: create a vtable entry for bo_unreferenceMark Janes2019-08-071-0/+1
| | | | | | In preparation for calling both Iris and i965 implementions from perf. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: create a vtable for low-level driver functionsMark Janes2019-08-071-0/+4
| | | | | | | | | | | Performance metrics collections requires several actions (eg bo_map()) that have different implementations for Iris and i965. The perf subsystem needs a vtable for each of these actions, so it can invoke the corresponding implementation for each driver. The first call to be added to the table is bo_alloc. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: use common ioctl wrapperMark Janes2019-08-072-9/+5
| | | | | | | | There were multiple ioctl-wrapper functions, so a common implementation was put in gen_gem.h. With a common implementation, perf no longer needs the caller to configure one for it. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/perf: rename gen_perf to gen_perf_configMark Janes2019-08-073-26/+26
| | | | | | | | | | | | | | | This structure contains the configurations of the metrics for the current platform, and the settings needed for the perf subsystem to query that configuration from the device. This data is available without a rendering context, and needed to support MDAPI metrics for Vulkan. A gen_perf_context struct will be added later, which holds additional state from the rendering context necessary for metric data collection. The gen_perf struct needs a more precise name to reduce confusion. Reviewed-by: Kenneth Graunke <[email protected]>
* util: add anon_file.h for all memfd/temp file usageGreg V2019-08-073-46/+10
| | | | | | | | | Move the Weston os_create_anonymous_file code from egl/wayland into util, add support for Linux memfd and FreeBSD SHM_ANON, use that code in anv/aubinator instead of explicit memfd calls for portability. Acked-by: Lionel Landwerlin <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* meson,i965: Link with android deps when building for android.Bas Nieuwenhuizen2019-08-072-4/+12
| | | | | | | | | | | The DBG marco in brw_blorp.c ends up calling an android log function: error: undefined reference to '__android_log_print' v2: On suggestion from Lionel, hang the Android dependency onto a new libintel_common dependency. Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Emit a dummy MEDIA_VFE_STATE before switching from GPGPU to 3DJason Ekstrand2019-08-061-0/+19
| | | | | | | | | | | | There is an object-level preemption workaround which requires this. However, even without object-level preemption, we seem to have issues with geometry flickering when 3D and compute are combined in the same batch and this appears to fix it. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109630 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111267 Cc: [email protected] Reviewed-by: Kenneth Graunke <[email protected]>
* anv: Implement VK_EXT_line_rasterizationJason Ekstrand2019-08-068-12/+211
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* genxml: Rename 3DSTATE_SF::Anti-Aliasing EnableJason Ekstrand2019-08-066-6/+6
| | | | | | | This makes it consistent with the new name when it's moved to 3DSTATE_RASTER. Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Use dirty bits for dynamic state trackingJason Ekstrand2019-08-063-23/+64
| | | | | | | | | | Previously, we assumed that the dirty bit was always 1 << VK_DYNAMIC_* and this assumption is about to be false. Extensions which define new VK_DYNAMIC_* enums won't be nice and tightly packed which this really requires. Instead, add functions to don the conversions and rework the bits a bit. Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Advertise the right line width range on gen9 and CHVJason Ekstrand2019-08-061-1/+5
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/compiler: add ability to override shader's assemblyDanylo Piliaiev2019-08-054-12/+85
| | | | | | | | | | | | When dumping shader's assembly with INTEL_DEBUG=vs,tcs,... sha1 of the resulting assembly is also printed, having environment variable INTEL_SHADER_ASM_READ_PATH present driver will try to load a "%sha1%.bin" file from the path and substitute current assembly with the one from the file. Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* intel/tools: add binary output type to i965_asmDanylo Piliaiev2019-08-052-17/+47
| | | | | | | | Add '-t,--type' command line option to specify the output type which can be 'bin', 'c_literal' or 'hex'. Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Sagar Ghuge <[email protected]>
* intel/nir: Add 1-bit opcodes to brw_cmod_for_nir_comparison_opJason Ekstrand2019-08-031-0/+10
| | | | Reviewed-by: Matt Turner <[email protected]>
* intel/nir: Add a common nir comparison -> cmod helperJason Ekstrand2019-08-034-82/+47
| | | | | | We already had one in the vec4 code, we just had move it. Reviewed-by: Matt Turner <[email protected]>
* meson: drop unused dep_{thread,dl}Eric Engestrom2019-08-032-2/+2
| | | | | | | | Unused as of last commit. Signed-off-by: Eric Engestrom <[email protected]> Acked-by: Eric Anholt <[email protected]> Tested-by: Vinson Lee <[email protected]>
* meson: replace libmesa_util with idep_mesautilEric Engestrom2019-08-035-24/+28
| | | | | | | | | | | This automates the include_directories and dependencies tracking so that all users of libmesa_util don't need to add them manually. Next commit will remove the ones that were only added for that reason. Signed-off-by: Eric Engestrom <[email protected]> Acked-by: Eric Anholt <[email protected]> Tested-by: Vinson Lee <[email protected]>
* intel/tools: Fix aubinator_viewer build.Kenneth Graunke2019-08-011-1/+1
| | | | | | This functions was recently renamed and not all callers were updated. Fixes: 086c486a75f ("intel/device: rename gen_get_device_info")
* intel/ir: Fix CFG corruption in opt_predicated_break().Francisco Jerez2019-08-012-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically the optimization of a conditional BREAK + WHILE sequence into a conditional WHILE seems pretty broken. The list of successors of "earlier_block" (where the conditional BREAK was found) is emptied and then re-created with the same edges for no apparent reason. On top of that the list of predecessors of the block immediately after the WHILE loop is emptied, but only one of the original edges will be added back, which means that potentially several blocks that still have it on their list of successors won't be on its list of predecessors anymore, causing all sorts of hilarity due to the inconsistency in the control flow graph. The solution is to remove the code that's removing valid edges from the CFG. cfg_t::remove_block() will already clean up after itself. The assert in bblock_t::combine_with() also needs to be removed since we will be merging a block with multiple children into the first one of them. Found the issue on a hardware enabling branch originally, but apparently somebody reproduced the same problem independently on master in the meantime. Fixes: d13bcdb3a9f ("i965/fs: Extend predicated break pass to predicate WHILE.") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111009 Cc: [email protected] Cc: Sergii Romantsov <[email protected]> Cc: Matt Turner <[email protected]> Cc: [email protected] Tested-by: Paul Chelombitko <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* intel/device: make internal functions privateMark Janes2019-08-012-84/+68
| | | | | | | | | | | | | The device info initializer makes several fuctions internal: - handling of device override - updating topology from kernel information The implementation file is slightly reordered due to the renamed functions being static. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/device: rename gen_get_device_infoMark Janes2019-08-0112-20/+22
| | | | | | | | | | | | | | | | | | Rename the original device info initialization routine so callers don't mistakenly call the wrong one: gen_get_device_info_from_fd: Queries kernel for full device info, including topology details. gen_get_device_info_from_pci_id: Partially initializes device info based on PCI ID lookup, when the kernel is not available. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/tools: use device info initializerMark Janes2019-08-011-22/+3
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: use initialization routine for gen_device_infoMark Janes2019-08-011-15/+7
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* i965: Move device info initialization to common codeMark Janes2019-08-012-0/+137
| | | | | | | | | | | With perf queries, initializing the device info is much more complex than just getting a PCI ID and calling gen_get_device_info. This commit adds a new gen_get_device_info_from_fd helper in common code which does all of the requisite kernel queries to get device info including all of the topology information. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/common: provide common ioctl routineMark Janes2019-08-012-50/+55
| | | | | | | | | | | i965 links against libdrm for drmIoctl, but anv and iris both re-implement this routine to avoid the dependency. intel/dev also needs an ioctl wrapper, so lets share the same implementation everywhere. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* iris: add support for gl_ClipVertex in tess eval shadersTimothy Arceri2019-08-011-0/+9
| | | | | | Required for OpenGL compat support. Reviewed-by: Kenneth Graunke <[email protected]>
* iris: add support for gl_ClipVertex in geometry shadersTimothy Arceri2019-08-011-0/+9
| | | | | | This will enable us to support the OpenGL compat profile. Reviewed-by: Kenneth Graunke <[email protected]>
* intel/vec4: Drop all of the 64-bit varying codeJason Ekstrand2019-07-314-200/+47
| | | | Reviewed-by: Matt Turner <[email protected]>
* intel/fs: Drop all of the 64-bit varying codeJason Ekstrand2019-07-312-363/+139
| | | | Reviewed-by: Matt Turner <[email protected]>
* intel: Use NIR to lower 64-bit varying accessJason Ekstrand2019-07-311-6/+11
| | | | Reviewed-by: Matt Turner <[email protected]>
* intel: add a couple of ASSERTEDEric Engestrom2019-07-311-1/+1
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Matt Turner <[email protected]>