Commit Graph

134 Commits

Author SHA1 Message Date
Venevtsev, Igor
f6743ced2a Remove reuseBO from createGraphicsAllocationFromSharedHandle
Change-Id: Ia7af1cdd8e3986b8af7c542032d2767303865382
2018-09-03 13:38:19 +02:00
Mateusz Jablonski
92bfd2e3d2 Move OsContext to Device
Change-Id: I030b65372fbdc075423d22720e9da34ac65b8e68
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-09-03 10:42:26 +02:00
Dunajski, Bartosz
02611dc953 Retrun valid status on createAllocation64k fail
Change-Id: Iaaed107c995a79125236196b6a956696dfe20875
2018-08-28 19:57:19 +02:00
Mateusz Jablonski
deab9a33cd Move os context tests to os interface tests
Change-Id: I409d988c6c561bca6fc6dcb0ff16583131f0cf5a
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-08-28 08:58:06 +02:00
Mateusz Jablonski
4b29b30db1 Add OsContext class in shared code
Change-Id: If5aea2126abe1b892068af9ca53e7f448e5b85a6
2018-08-27 09:20:09 +02:00
Mateusz Jablonski
7cecedae45 Unit tests: Move initialization of Wddm to fixture's SetUp
Change-Id: I3d3fa30d5aebf4069c1726a21f537a3d40799793
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-08-24 14:31:27 +02:00
Mateusz Jablonski
9ac3529c6b Remove template parameter from Wddm methods
Change-Id: Icd700c7215184d4c0f9564c61868a1f9f29a75e5
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-08-23 16:37:31 +02:00
Mateusz Jablonski
deaaa908a4 Extract Os Context from Wddm and WddmInterface
Change-Id: I13a52fc466a14f4bd28876d3c47884dc596f2b58
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-08-23 09:07:57 +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
Stefanowski, Adam
1ad70dfebe Decouple memory manager and device
Change-Id: Ia64cc955e1d290cad4c50b6a2a41052d9acf0eec
2018-08-20 13:44:31 +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
6c5875f805 [2/n] Initialize Wddm interface in Wddm init.
Change-Id: If7184e64df54b4e6840970fec67cb5bc11909b7c
2018-08-14 11:02:27 +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
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
Mrozek, Michal
1599ea800e Pass execution environment to command stream receiver.
Change-Id: I598f67f8b005b5ce8249b638e080657eb6dc3547
2018-08-08 17:10:39 +02:00
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
Mrozek, Michal
6f251f5ea1 Fix TBX completion loop.
- resources are dumped in make non resident call
- in order to dump correct data we need to be sure that GPU is done processing
- waiting needs to be unconditional to handle all cases
- remove not needed parameter to makeSurfacePackNonResident

Change-Id: Ib2b065d486cd3a5d86e599c51b24f3c958c3a10b
2018-08-03 09:32:24 +02:00
Mateusz Jablonski
89cf7532ea Make all gmm helper members non-static
Change-Id: Idb399aa275d66905040b6317d3888c94ffb98c55
2018-08-03 08:25:44 +02:00
Mrozek, Michal
f60847b64e Pass device to flushTask.
- do not obtain it from memory manager

Change-Id: Icc7c03dc925c69ec5932c5812151ac28dc34d20d
2018-08-01 14:11:06 +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
Chodor, Jaroslaw
c5becf63f7 Forcing llvm as intermediate for Link, CreateLib
Link and CreateLibrary will use llvm IR as
intermediate representation always

Change-Id: I370e92ee258d997f04f40320ab4a478970ee22bd
2018-07-30 17:15:21 +02:00
Mateusz Jablonski
a906ddaa66 Make gmm client context non-static member
Construct platform and initialize gmm in each test

Change-Id: I4f209369e77213420308f31f911b7a569ea93283
2018-07-27 00:16:30 +02:00
Mateusz Jablonski
ab7920ba14 Gmm Memory: initialize client context in constructor
Change-Id: Iaaa40f5485faceb022e018be7930777e14575b46
2018-07-23 12:27: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
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
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
Mateusz Jablonski
36db75da28 Create gmm client context wrapper, reduce mock_gmm
Change-Id: I4eec4366afeb175fea4bf7934e3046b50fe30fe9
2018-07-17 11:46:04 +02:00
Mrozek, Michal
0abacce160 Move tag allocation destruction to command stream receiver.
Change-Id: I657df755c6cdd695103769a45a8dce749f7bd545
2018-07-16 13:12:53 +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
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
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
Hoppe, Mateusz
64277ee849 TBX CommandStreamReceiver fix for makeCoherent
- makeCoherent should be called after TBX finished processing
 - this is when tagAddress is updated with taskCount
makeCoherent is called from makeNonResident which is invoked just
after flush and may happen before TBX server finished processing
leading to invalid data to be read back to CPU accessible memory

- this fix adds waiting for taskCount to blocking calls for TBX CSR
before calling makeNonResident on surfaces to guarantee correct data
from TBX server is ready.

Change-Id: I498a5454e0826eec2a5413a08880af40268550e1
2018-07-04 12:04:32 +02:00
Stefanowski, Adam
8fd7f6a8ce Passing the capabilityTable as a reference to the constructor
previously we couldn't add new variable to capabilityTable structure
becasue then we get too large function argument passed by
value

Change-Id: I162967ba195ec18fc781d127012f82e8876913a6
2018-07-03 16:51:17 +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
Koska, Andrzej
3548876263 Setting the GpuAddress from a fragment in createGraphicsAllocation
Change-Id: I4d60aceea96dfbe50b2af4a1fbaada6a150ddd35
2018-06-29 16:13:29 +02:00
Mrozek, Michal
815151cb94 Simplify memory manager interfaces.
- Remove one function that routes to another function.

Change-Id: I44c17bf51abaf3aebf0692086de0f38e0693ab59
2018-06-29 15:39:10 +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
Godek
24ba7a0dbf using mock registry in Wddm23Tests
prevent reading from Windows registry in unit tests

Change-Id: I83f5d6f1db03aac4bc09665f8900606c07e757a5
2018-06-25 13:52:36 +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
Koska, Andrzej
e15c2b899f Setting the right handle value in fragment
Change-Id: Idcbdce5fc686360f252c8db0423ae77d9155702e
2018-06-15 16:36:52 +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
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