Commit Graph

207 Commits

Author SHA1 Message Date
Mrozek, Michal
dd407a3bf1 Move header setting to Wddm csr creation.
- This is constant setting and will not change in device lifetime.
- This is a part of device removal from memory manager.

Change-Id: Ib80559bac67d65c1bcc488fb033be7343839a108
2018-08-07 10:35:40 +02:00
Hoppe, Mateusz
4cb408294c Add useSystemMemoryPool flag to Gmm
Change-Id: Ide27887de9169a9d958d3f232bcd70a1b7afe94f
2018-08-03 12:52:23 +02:00
Mateusz Jablonski
89cf7532ea Make all gmm helper members non-static
Change-Id: Idb399aa275d66905040b6317d3888c94ffb98c55
2018-08-03 08:25:44 +02:00
Hoppe, Mateusz
e1eaf3ded0 Fix bug in VA sharing multithreaded scenario
- createGraphicsAllocationFromSharedHandle was not threadsafe,
instead of reusing BufferObject for a single handle when
multiple threads were creating memory objects from a single VASurface,
new BO could be created and placed in container with BOs for reuse.
This was leading to errors in ioctl calls.

- add lock for following set of operations:
 1. find BufferObject with a given handle in container
 2. create shared BO when not found
 3. add shared BO to container
 prevents creating multiple BOs for a single handle

- replace recursive mutex with regular mutex as mutex shouldn't
be locked recursively

Change-Id: I0937e2abf3bf1c672c6d77422d46e441f7216a68
2018-08-02 12:55:05 +02:00
Katarzyna Cencelewska
00a62f204a Add missing API_ENTER logging in functions:
clGetPlatformIDs, clIcdGetPlatformIDsKHR,
 clGetPlatformInfo, clGetDeviceIDs,
 clCreateSubDevices, clRetainDevice,
 clCreateContextFromType

Change-Id: I571b036cc6b64a66d768d7f3f8eb55e7d69b9aa7
2018-08-01 14:29:10 +02:00
Hoppe, Mateusz
4441387969 Refactor allocateGraphicsMemoryInPreferredPool
- extend AllocationType to code necessary flags
- remove redundant args
- refactor Buffer::create()

Change-Id: Ic4b2e0931fad8198ad1cf4f79de210d815048ccf
2018-07-31 08:05:55 +02:00
Stefanowski, Adam
16b7cd1a75 Move debug variables to new location
Change-Id: I2311f9b3f7bbe1a319c25ae3a99e5c41452faf90
2018-07-30 11:22:02 +02:00
Mateusz Jablonski
6618a35126 Remove static gmmlib support on Windows
Change-Id: I9e52f11b196ef9364b710766d9dd302e4dc0cc64
2018-07-24 10:02:03 +02:00
Dunajski, Bartosz
512978768e Pass renderCompressed information to GMM for 64kb allocations
Change-Id: I56302055c028e919bceeb3333557cab7451e1d09
2018-07-23 11:28:43 +02:00
Mateusz Jablonski
8537c7f42f Use types of gmm dll functions in gmm interfaces
Change-Id: I91bd9563abbcde32a0c88066a2f6747c1d5abc81
2018-07-23 10:07:27 +02:00
Mateusz Jablonski
8ed9991910 Remove not used function, unify gmm interface filenames
Change-Id: I017697ec4076ddd47f2039f71805a895d687c8a9
2018-07-23 09:09:47 +02:00
Mateusz Jablonski
56557ca3a3 Unit tests: Initialize gmm before wddm initialization
Change-Id: I751bd93248aa78731b9591f494eafcd12d3e6d82
2018-07-20 15:47:15 +02:00
Hoppe, Mateusz
f125c8ff45 Add allocateGraphicsMemoryInDevicePool
- do not always expect failures in tests with failure injections
there is retry mechanism for some cases

Change-Id: If7589d2dacc41216d2f3b08f861209bbab179615
2018-07-20 13:00:00 +02:00
Mateusz Jablonski
96e3163386 Prepare to use gmm dynamic lib on Linux
Change-Id: Ie1b0c8fe13c4e044f1f2b0651349840d2850f423
2018-07-19 01:04:52 +02:00
Dunajski, Bartosz
1c0f90b194 Improve renderCompressed flags usage
Change-Id: Ib5fd8e078dba0f19dd65bc8cdc6cded771e559a2
2018-07-18 19:55:52 +02:00
Hoppe, Mateusz
407227959a Add memoryPool to GraphicsAllocation
- new ExtendableEnum struct that serves as enum but can
be extended with values
- decrease dependencies on graphics_allocation.h header -
 use forward class declaration when possible
- memoryPool indicates what kind of memory is allocated
for a given GraphicsAllocation

Change-Id: I7a707c28dc4544cc73abc5f0ed5263ba5be17452
2018-07-17 20:10:33 +02:00
Mrozek, Michal
d2e820aac8 Enhance validation in sharing scenarios.
Change-Id: I590c5d66602749fb5702e414ccf2b1acec3bc9e7
2018-07-17 19:47:54 +02:00
Mrozek, Michal
07031518dc Add error handling in d3d9 sharing scenario.
Change-Id: I3f337b633514d90298f03a9fa486757026137151
2018-07-17 19:25:36 +02:00
Mateusz Jablonski
36db75da28 Create gmm client context wrapper, reduce mock_gmm
Change-Id: I4eec4366afeb175fea4bf7934e3046b50fe30fe9
2018-07-17 11:46:04 +02:00
Mrozek, Michal
8a69656446 Fix unrecoverable.
- Do not rely on device as it may be destroyed use
command stream receiver instead.

Change-Id: I2c8a1542a27e5688cec6031e931d5765bcbebc28
2018-07-16 17:30:56 +02:00
Milczarek, Slawomir
16d04fd276 AUB subcapture to read file name from outside and write into several files
Add a capability for AUB subcapture feature to dump into several files
and read file name from the outside (via regkey and env variable).

Change-Id: I2d5f7945cfbc740b0316fe23b8c5ae9fd698ac57
2018-07-14 13:10:35 +02:00
Zdanowicz, Zbigniew
51421ec0b9 Add experimental command buffer
This code is an infrastructure for special debug purpose that allow measure
execution time of any hardware command.

Change-Id: Id12a7979d204734a0c4a6c4700e427b65ac2397f
2018-07-13 12:09:14 +02:00
Dunajski, Bartosz
a8ce3ca00a Wddm: Use GMM allocation size during map GPU VA
Change-Id: Ie10898db7c539ce5025ab4a6d658d6e593e94c50
2018-07-13 08:03:57 +02:00
Mrozek, Michal
1c17c3b325 Add RAII wrapper for DeviceFactory cleanup.
Change-Id: Iae94df4894bb6bcd64b22c4d197eec7d7fede0b5
2018-07-12 13:20:19 +02:00
Hoppe, Mateusz
55a045ebe1 Refactor graphics memory allocation scheme
- replace createGraphicsAllocationWithRequiredBitness with more general
methodallocateGraphicsMemoryInPreferredPool based on passed
 AllocationData
- proper flags for allocation selected based on AllocationType

- remove allocateGraphicsMemory(size_t size, size_t alignment)
and use allocateGraphicsMemory(size_t size) instead where default
alignment is sufficient, otherwise use full options version:
allocateGraphicsMemory(size_t size, size_t alignment,
 bool forcePin, bool uncacheable)

Change-Id: I2da891f372ee181253cb840568a61b33c0d71fc9
2018-07-11 15:48:05 +02:00
Kamil Diedrich
a95c6d3c1a Remove memset on non POD
Change-Id: I74bf98f5dbdc5005081ee9a025a5b9641b6ca89f
2018-07-11 13:58:55 +02:00
Jobczyk, Lukasz
56125ea381 Add tool for tracking events
Change-Id: Id61d814e4629a41a279d46097ec8b4f94a224234
2018-07-11 13:34:56 +02:00
Mrozek, Michal
92266e4ad1 Disable stateless to statefull with offset optimization on BDW.
- BDW doesn't support this optimization

Change-Id: Ic88556214c8d9a14ddb093b7c25587575e616f83
2018-07-10 17:49:55 +02:00
Hoppe, Mateusz
684b1d75ba Refactor GraphicsAllocation::AllocationType and allocationType enums
- change GraphicsAllocatoin::AllocationType to scoped enumeration
so that ALLOCATION_TYPE_ prefix in every enum value can be removed
- all accesses are typed (example AllocationType::IMAGE)
- Rename allocationType to AllocationUsage to eliminate confusion
with multiple AllocationType enums / types

Change-Id: I16003297ecfcb0aaa5779ad00706c5d983914bbe
2018-07-06 13:00:08 +02:00
Mateusz Jablonski
94dbdb602d Add instance of gmm helper to execution environment
Change-Id: I1b044611fbad91fbb681ba233938f41502f29056
2018-07-06 08:48:19 +02:00
Dunajski, Bartosz
e26d67cde3 Aux surface programming for Buffers [1/n]: Gmm interface improvement
Change-Id: I984b8ebee27808a236217e82bb4e910550d624c4
2018-07-03 13:00:08 +02:00
Milczarek, Slawomir
86565e5f06 AUB subcapture in toggle mode to be controlled with HKCU regkey
- move AUBDumpToggleCaptureOnOff from HKLM to HKCU without admin rights
- fix AUB subcapture in toggle mode to call make resident in standalone mode

Change-Id: Ia6971921f33bb9ca63112790af870217da8a1585
2018-07-03 12:56:06 +02:00
Kamil Diedrich
784ddf0a6c cleanup dead code, readability fixes
Change-Id: I91a3947d4ec0ef2264afed5abc58ff66151f0dc6
2018-07-02 12:50:15 +02:00
Koska, Andrzej
3548876263 Setting the GpuAddress from a fragment in createGraphicsAllocation
Change-Id: I4d60aceea96dfbe50b2af4a1fbaada6a150ddd35
2018-06-29 16:13:29 +02:00
Dunajski, Bartosz
e18e9fb94e Move static methods from Gmm to new GmmHelper class
Change-Id: I84fbe94f0e1072324164086b456c71a46ae5040c
2018-06-27 16:46:09 +02:00
Koska, Andrzej
4a4ad6460c Revert: Setting the GpuAddress from a fragment in createGraphicsAllocation
Change-Id: Ifd0a26f58b748df5e43e57b4e0be6b94c2051890
2018-06-26 17:05:26 +02:00
Koska, Andrzej
b563e07394 Setting the GpuAddress from a fragment in createGraphicsAllocation
Change-Id: I4f6afbdd4d86ab2958de29cf49aaed9b8e2ea642
2018-06-26 14:43:08 +02:00
Mrozek, Michal
e47344ec0e Add debug flag CreateMultipleDevices.
- This flag allows to create multiple devices from the same GPU

Change-Id: I4b80e4759543ca4559549b2d26c5ddef241f9ebb
2018-06-20 18:33:32 +02:00
Jacek Danecki
3ae56d6c8d Mark buffers as not resident after exec
Change-Id: I6406c626bfaadf01149a8464db2bb4278cbdcbce
2018-06-18 17:44:05 +02:00
Zdanowicz, Zbigniew
fa3c4d83db Add debug flag to force rebuild pre-compiled kernels in runtime
Change-Id: I1e6bf94de3748e43c4ca80fd41c488665e0c5604
2018-06-18 14:23:54 +02:00
Koska, Andrzej
e15c2b899f Setting the right handle value in fragment
Change-Id: Idcbdce5fc686360f252c8db0423ae77d9155702e
2018-06-15 16:36:52 +02:00
Milczarek, Slawomir
eb1b5ded9c Add support for AUB subcapture (filter and toggle modes)
This commit adds a capability to selectively enable/disable AUB capture,
i.e. by toggling the registry key from the outside or specifying the filter
with a kernel name and/or kernel start index and kernel end index.

Change-Id: Ib5d39c21863fbc4a95aa73c949b9779ff993de0f
2018-06-15 13:02:27 +02:00
Artur Harasimiuk
75ab0c6fe1 Switch clang-format to 6.0
Change-Id: Id96d1f47fb3d479d10d1022f1259dc030a148192
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2018-06-14 09:45:00 +02:00
Dunajski, Bartosz
3a369ad500 Improve Wddm creation
Pick interface version basing on Ftr flag

Change-Id: I09880610922a6d451fc6f414a4fa5857449bc0f4
2018-06-14 09:06:40 +02:00
Jacek Danecki
4d48a6afec Call makeResident only once per BufferObject
When different graphics allocations are created from
the same backing storage makeResident should be called only once.

Change-Id: Ide8ab385894505fd405eef010768dbcac3b92fba
Signed-off-by: Jacek Danecki <jacek.danecki@intel.com>
2018-06-11 23:28:38 +02:00
Mateusz Jablonski
5007c60a03 Generate dll names to lib_names.h
Remove some not needed ifdef blocks

Change-Id: I29f787bde819a2f19312dd5713df0d4534a47cd8
2018-06-11 18:00:56 +02:00
Mateusz Jablonski
98b8b4b6a4 Prepare to use gmm as dll on Windows
Since this commit neo on Windows can use static or shared gmm lib

Change-Id: I7db70d7f9bc969e8193ac77e8b6d65ecc57d0093
2018-06-08 17:35:01 +02:00
Zdanowicz, Zbigniew
c1782b802a Add debug flag to override platform used by compiler
Change-Id: I6fc4254f928158d0cb07f53436d1ddd09fcef7d5
2018-06-08 16:53:59 +02:00
Koska, Andrzej
fe56c57318 Tracking the internal allocation when creating a buffer
This fix prevents the creation of a buffer from the pointer
obtained from clEnqueueMapBuffer

Change-Id: I203f2d5263eeb02fe0d73bc9db159438af3cf1fc
2018-06-08 07:33:07 +02:00
Mrozek, Michal
f24ec6ec33 Add DisableZeroCopyForBuffers debug flag.
- This flag disables zero copy for all buffers.

Change-Id: I882f01942f99e399e33f5fe2750acbcc0476457c
2018-06-07 11:28:54 +02:00