Commit Graph

710 Commits

Author SHA1 Message Date
Mateusz Jablonski
7afba8d50b Cleanup after adding new local ids layout for images
- Apply layout for images only when Z size is equal to 1
- Fix generating local ids for local workgroup size
  when any size is not power of 2
- Revert commit c53c09da45

Change-Id: Ie745782fafce2facbd877e3e33e4ba347cb2b09e
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-08-21 11:27:30 +02:00
Hoppe, Mateusz
23d66b6984 Add dedicated method for getting hint for AubDump memory write
Change-Id: I5282d3004e61dde4bda1fd0e0c1acf9fe94caca0
2018-08-21 10:28:59 +02:00
Milczarek, Slawomir
393c2219c9 Add device callback for GMM library to notify AUB subcapture
This commit adds a new callback to be called by GMM library
when it allocates/deallocates compressed resources to collect data
about their addresses and sizes and handle their AUB residency.

Change-Id: I075d3ff4cb049cfe626da82892069c4460ea585c
2018-08-20 14:38:42 +02:00
Dunajski, Bartosz
044255e9bd Pick Main Kernel for LWS and numWG in dispatchWalker()
Change-Id: I4fd0746ec77890ceacbf333966bb00a4ea99b186
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-08-20 13:51:35 +02:00
Stefanowski, Adam
1ad70dfebe Decouple memory manager and device
Change-Id: Ia64cc955e1d290cad4c50b6a2a41052d9acf0eec
2018-08-20 13:44:31 +02:00
Kamil Diedrich
1dcec9e23a Error handling improvement
Change-Id: I5e35bff508c45993be03bc946ddebfb698a0c638
2018-08-20 10:54:28 +02:00
Dunajski, Bartosz
56562963ef Pick main Kernel for PrintfHandler and AubSubCapture
Change-Id: I9ff3bdaa5da82e162642deeaf4a8e0821ff00da2
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-08-20 10:06:00 +02:00
Hoppe, Mateusz
0723455cb5 Add localMemorySupported flag to HardwareCapabilities
Change-Id: Ie57aa6418eecdd288001ded2605c731dd61b9879
2018-08-17 15:22:08 +02:00
Kamil Diedrich
17de60254a ELF reader refactor
Change-Id: I326747237ba605f338d3f2c91a6b682db8b75af5
2018-08-17 13:57:41 +02:00
Dunajski, Bartosz
c7a49666d5 Refactor querying Main and Parent Kernel from MultiDispatchInfo
Change-Id: I723d91f2f445bc7af1bcb0de46f8ac07837f3449
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-08-17 13:51:32 +02:00
Maciej Dziuban
524737af39 Add executionEnvironment field to Program
Change-Id: Id624177aa3f0b5525bac86e2e0a935ebaf53480e
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-08-16 16:52:41 +02:00
Maciej Dziuban
5b37dc1c91 Add ExecutionEnvironment parameter to Program::createFromGenBinary
Change-Id: I825c29d8c885d986d54d716ea72f19e70b3b11c6
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-08-16 13:56:36 +02:00
Mrozek, Michal
c53c09da45 Limit local work sizes where local ids limit is applied.
Change-Id: Id9a84d6a7d4530344771f48fd278cff9ab2dd927
2018-08-16 12:34:09 +02:00
mplewka
5e9066170d Change include location of gtpin headers
Change-Id: Idd1e85b1946bad3af950cb9041d25ff5bc1aaf03
2018-08-16 12:06:22 +02:00
Mrozek, Michal
931ed38a57 [3/n] Wddm Cleanup.
- remove different flavors of Wddm
- rename files for better meaning
- remove unnecessary files
- remove unnecessary methods

Change-Id: I73a35e186a9a99169260bb157958ff795b36e20d
2018-08-16 10:07:24 +02:00
Mrozek, Michal
077134faf4 Add debug flag to loop at initialize.
- This is to help debugging applications that requires attaching to them.

Change-Id: Ia7923c231b925ab9a473a70fb5fcc13fd99db1ca
2018-08-16 09:57:49 +02:00
Woloszyn, Wojciech
404c0cccb9 In Kernel::resolveArgs, use argument's object, not value
Change-Id: I65a1855349707d06172b2e0d4ad97dd9f4554c25
2018-08-14 17:25:49 +02:00
Dunajski, Bartosz
3469539798 Remove UNRECOVERABLE_IF from setArgBuffer
Change-Id: I7cddad0fc902489139b26e655cb301de0dda422c
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-08-14 15:21:53 +02:00
Hoppe, Mateusz
5be98e2e0f Fix VA sharing scenario
- make createGraphicsAllocationFromSharedHandle and
freeGraphicsMemory more threadsafe - there was race condition
where one thread called PRIME_FD_TO_HANDLE ioctl when the other just
closed the last handle with GEM_CLOSE ioctl. This led to situation
where newly acquired handle from PRIME_FD_TO_HANDLE was already invalid
and used in exec.

- adding mutex for the time of accessing shared handles container
 and ioctls (GEM_CLOSE and PRIME_FD_TO_HANDLE) resolves racing problem

Change-Id: I8417a036a1429be8f1ba97e63ebdda2707960564
2018-08-14 15:00:16 +02:00
Mrozek, Michal
599b79320e Call yield in busy loop to reduce CPU usage.
Change-Id: I6563665a9a1cbb0baabc0db6d8666f80414ad347
2018-08-14 14:27:39 +02:00
Hoppe, Mateusz
22f80a8a2c Add logging to VA sharing api
Change-Id: I5c68995db4d2dcde9505210030d9c63b5e86ddbd
2018-08-14 14:15:35 +02:00
Mateusz Jablonski
47f3dad619 Apply (2/4)x4x1 layout when generating local ids for kernel with images only
- For SIMD8 apply 2x4x1 layout
- For SIMD16/SIMD32 apply 4x4x1 layout

Change-Id: I31bceb49387011c66da5f96ad2a71125b96d4cda
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-08-14 12:22:20 +02:00
Mrozek, Michal
6c5875f805 [2/n] Initialize Wddm interface in Wddm init.
Change-Id: If7184e64df54b4e6840970fec67cb5bc11909b7c
2018-08-14 11:02:27 +02:00
Dunajski, Bartosz
a5950500a3 Aux translation [4/n]: Lock BuiltIn Kernel + refactor BuiltIns locking
Change-Id: Ic7dc9b86a4aa5f93f1c4bcdf80b9598ecdff9713
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-08-14 10:56:16 +02:00
Kamil Diedrich
d3d8b6f905 change ARRAY_COUNT macro to constexpr
Change-Id: I027c4e70e3b901f3ffb3c0971935ae67e971db07
2018-08-14 10:04:58 +02:00
Mrozek, Michal
d51c7ccdd4 [1/n] Move different wddm functions to dedicated helper.
- This is first phase of moving wddm specific internals to Wddm
Interface helper
- Instead of having 2 different wddm classes driver will route interface
specific functions to dedicated helper
- Helper will be initialized when interface version will be known,
therefore we would not need to initialize wddm multiple times

Change-Id: Ic71788ccb2f8a71bf2f3f3c2a04117f16417d85e
2018-08-14 09:08:25 +02:00
Lukasz Towarek
95e28faca0 Fix division by zero in enqueueKernel
Change-Id: I8e7d3db39805133a5af545e65a94fb19433a2a41
2018-08-14 09:02:17 +02:00
Mrozek, Michal
99829a3319 Prefetch binding table entries.
- Significant performance boost for kernels utilizing surface states

Change-Id: I0cec91cb61bd19999847090b945810f798ed80d6
2018-08-13 17:21:04 +02:00
Stefanowski, Adam
8598168355 Remove programCount from device
Change-Id: I4edfabadd73166a27db73a120fc1380de52a33a5
2018-08-13 13:45:55 +02:00
Lukasz Towarek
78f505f4f4 Return CL_INVALID_ARG_SIZE instead of CL_INVALID_ARG_VALUE
Change-Id: Ia8792035e19a450f1399f8be3287ef46d0d6609d
2018-08-13 13:31:55 +02:00
Dunajski, Bartosz
6ca84c278a Aux translation [3/n]: Dispatch AuxTranslation builtin when required
Change-Id: I9bd0294de7980ac01ebb3c2d696eba6fd6a456ec
2018-08-13 12:15:30 +02:00
Woloszyn, Wojciech
93c1a7b51b Fix mipmaps return values
Change-Id: I6e7cdc69edc80010a0c6f5f337e6b530278a6606
2018-08-13 11:56:07 +02:00
Lukasz Towarek
23a7ec5ef9 Return CL_INVALID_PROGRAM_EXECUTABLE instead of CL_INVALID_KERNEL
- clCreateKernel can't return CL_INVALID_KERNEL according to OpenCL spec

Change-Id: I379218fe20bd13eef52e5a17b1fd3f91fdda06c0
2018-08-13 11:43:33 +02:00
Woloszyn, Wojciech
53d99ead24 Fix sampler lifecycle
- Add refcount to sampler to avoid use after free

Change-Id: I0f03d8ed29b5b9dc5bee355ed266ac7437e92509
2018-08-13 10:13:08 +02:00
Dunajski, Bartosz
1a85f83235 Use std::make_unique for BuiltinDispatchInfoBuilder creation
Change-Id: I6c28627201c22900502f8f0d481a606f887069bf
2018-08-13 08:09:54 +02:00
Dunajski, Bartosz
117a7d15ad Aux translation [2/n]: Add new builtins
Each Kernel arg for aux translation needs to have own builtin kernel.
This is required to build MultiDispatchInfo before copying into SSH

Change-Id: I4b2f42518cf06bb31c31fd5f83f7da927bde99c3
2018-08-10 18:24:21 +02:00
Mrozek, Michal
9632d18071 Use make unique to construct an object.
Change-Id: I4fd944869238c0a4c38676160cb752d523dc07a1
2018-08-10 18:06:49 +02:00
Maciej Dziuban
b7bcd2dbac Move createFromGenBinary out from header
Change-Id: I444c057d76308fcaf08c8f2e6af1590f4cced0b3
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-08-10 15:59:26 +02:00
Woloszyn, Wojciech
e102f6c36b Add missing getMaxLod() gmm call
Change-Id: I14e672b17ddfc9a7045ee66a694642f224a0f4e7
2018-08-10 15:49:24 +02:00
Mrozek, Michal
ae9134233d OsInterface cleanup.
- OsInterface is now a part of execution environment
- it is created when getDevice is being called
- move ownership of wddm from Wddm Memory manager to OSInterface
- reuse osInterface on Linux in Command Stream Receiver
- currently OsInterface is not reused upon command stream receiver creation
on Windows this will change in further commits.
- make enumAdapters non static function

Change-Id: I10f36c01e6729f48653e3b5c11cbc32e811ce754
2018-08-10 14:25:53 +02:00
Kowalczuk, Jakub
571babf1d5 Add new macro _RELEASE_BUILD_WITH_REGKEYS
Change-Id: I679a17e99d7928b3caf10f80a581fb386aaf7751
2018-08-10 11:17:22 +02:00
Lukasz Towarek
20aa362a7d Support CL_INVALID_PROGRAM_EXECUTABLE in clCreateKernel
Change-Id: I7ff5b988d0e6187931ea4ad35a7aaeb92e37907a
2018-08-10 09:58:33 +02:00
Mrozek, Michal
9776868aff Remove not used debug variable.
Change-Id: I6e3a7d1340096383101b84148d772afd2d4f304e
2018-08-09 16:12:44 +02:00
Lukasz Towarek
d9aad44434 Handle kernel name set to nullptr
Change-Id: Ifeb6923c8df948de94b0771de0f37e628013d8db
2018-08-09 16:05:03 +02:00
Slawomir Milczarek
55475c2848 Clang tidy: Call to virtual function during destruction
Fix for clang tidy warning: Call to virtual function
during destruction will not dispatch to derived class

Change-Id: I000dacdbdfb486d2e35795d18ea9f5e4a00b7d6a
2018-08-09 15:20:58 +02:00
Katarzyna Cencelewska
32b25ff08b Add missing API_ENTER and DBG_LOG_INPUTS logging in functions:
clEnqueueReadImage, clEnqueueFillImage,
clEnqueueWriteImage, clEnqueueCopyImage,
clEnqueueCopyImageToBuffer, clEnqueueMapImage,
clEnqueueUnmapMemObject, clEnqueueMigrateMemObjects,
clEnqueueNDRangeKernel, clEnqueueTask,
clEnqueueNativeKernel, clEnqueueMarker,
clEnqueueWaitForEvents, clEnqueueBarrier,
clEnqueueMarkerWithWaitList

Change-Id: Ifde3290f8dcd9758235018a97fc080798d3b9de0
2018-08-09 13:00:36 +02:00
Hoppe, Mateusz
69820ab51f Log created image cl_mem objects in api calls
Change-Id: Ic304b5971ddb93057afa47a5205e11e0110b037e
2018-08-09 12:44:39 +02:00
Katarzyna Cencelewska
955aaccb74 Add missing API_ENTER and DBG_LOG_INPUTS logging in functions:
clEnqueueSVMMap, clEnqueueSVMUnmap,
clSetKernelArgSVMPointer, clSetKernelExecInfo,
clGetPipeInfo, clCreateCommandQueueWithProperties,
clCreateSamplerWithProperties, clGetKernelSubGroupInfoKHR,
clGetDeviceAndHostTimer, clGetHostTimer,
clGetKernelSubGroupInfo, clSetDefaultDeviceCommandQueue,
clEnqueueSVMMigrateMem, clCloneKernel

Change-Id: Ic5ef808b4fd331b32173c176f498974fc9506a5d
2018-08-09 11:41:11 +02:00
Slawomir Milczarek
285af96dc2 getCpuGpuTime to return false when unavailable
This commit addresses crash issue in AUB standalone mode
when queue profiling is enabled on Linux platform.

Change-Id: Ie2d02093d3628efac3a8925890f22afd6a49469d
2018-08-09 10:10:47 +02:00
Katarzyna Cencelewska
4afa8fb6ca Add missing API_ENTER and DBG_LOG_INPUTS logging in functions:
clCreatePerfCountersCommandQueueINTEL, clSetPerformanceConfigurationINTEL,
clCreateCommandQueueWithPropertiesKHR, clCreateAcceleratorINTEL,
clRetainAcceleratorINTEL, clGetAcceleratorInfoINTEL,
clReleaseAcceleratorINTEL, clCreateProgramWithILKHR,
clGetExtensionFunctionAddress, clGetExtensionFunctionAddressForPlatform,
clSVMAlloc, clSVMFree,
clEnqueueSVMFree, clEnqueueSVMFree,
clEnqueueSVMMemcpy, clEnqueueSVMMemFill

Change-Id: I40db218af43a9379af173d08cba78c051e169352
2018-08-09 09:50:21 +02:00