- This is to improve battery usage while waiting in busy loop on CPU
- New Kmd Notify helper to maintain dynamic parameters
- Ask OS about battery status on longer waits
- Pick different timeout when using battery and optimization is disabled
Change-Id: I5f9c8c5a9c635652aac27c707f2b55933947a7fb
there is problem with Clang 4.0 and Debug builds when bit field
initialization is used. depending on structure size we may get some bits
still set.
this bitfield comes from external component, so we don't have full
control over them. use of memset to clear structure is workaround
Change-Id: I35062517107fde37e503f1bf8909db856d566254
- On gen8 devices we are not using index to control caching, but we program
caches directly
- In such case we need to rely on values reported from GMM instead of using
Kernel Mocs indexes.
Change-Id: I6c030847509d8f39f63ac98ebd3ebd0b0907e625
- Decission about timeout enabling and value moved out of CSR
- Timeout multiplier is no longer Linux specific
Change-Id: I6858fe2f811ef13802b95e0470e310210a9dea8b
When inheriting task count from parent events,
don't take into account externally synchronized events
Change-Id: I52d861e482669a18e2aca499c813716bb4951b74
- allow creating image 2d from non NV12 image 2d
- validate image descriptor and format when create image from image
Change-Id: Ie7887e75f1450fc723dc1d1ae9ff5639d88835fc
- change the way we handle blocked commands.
- instead of allocating CPU pointer and populating it with commands, create
real IndirectHeap that may be later submitted to the GPU
- that removes a lot of copy operations that were happening on submit time
- for device enqueue, this requires dsh & shh to be passed directly to the
underlying commands, in that scenario device queue buffers are not used
Change-Id: I1124a8edbb46777ea7f7d3a5946f302e7fdf9665
* adding support for map/unmap
* adding support for origin/region validation with mipmaps
* fixing slices returned in map/unmap
* removing ambiguity around mipLevel naming
* enabling cl_khr_mipmap_image in current shape
* enabling cl_khr_mipmap_image_writes in current shape
* fixing CompileProgramWithReraFlag test
Change-Id: I0c9d83028c5c376f638e45151755fd2c7d0fb0ab
- createContextOsProperties is not needed anymore
- replace invalid context property value
0x200D as invalid context property value should not be used,
as it can be use in future as valid property
Change-Id: I569433b0f37bbce083f0d64ecf1dc80ff83bfb46
- While estimating the required size of Indirect Object Heap we were not
handling properly the lack of local ids case
- In such case we should allocate one GRF per HW thread that will be unused
Change-Id: Ibcd359e431e3ffd9d55628ac7cf7eeefad72e7ba
- cpu virtual address was used instead of gpu va
- this caused incorrect behaviour of TBX server when
special heap allocator assigning GPU addresses was used
Change-Id: I2328cf2441be797311fd6a3c7b331b0fff79d4fc
Any CPU related updates such as clEnqueueMapBuffer or similar
need to trigger a re-dump of memory prior to the next clEnqueue call.
Change-Id: I7b31e559278e92ff55b6ebab8ef4190caef1ebc0
For image with defined sharingHandler test:
- enqueueAcquireSharedObjects
- enqueueReleaseSharedObjects
Change-Id: I8835e4a4aa06a08e57dc207b168810162e44445c
call to FCL can be costly. we don't need this when kernel source is
simple and does not contain '#include'. In this case we can compute hash
directly based on kernel source.
Change-Id: I0455be57d9ee13919a53c145e3feeb00a113d71e
- Do not obtain pattern allocation from reusable pool.
- This is due to the fact that it may contain allocations from internal
heap, which cannot be used for arguments declared as kernel argument.
Change-Id: I6c73445c409edc4ce25f8d8eba966f512dfd6cc9
- Move Windows HardwareInfo configuration from DeviceFactory to HwInfoConfig
- Add ULTs for HwInfoConfig on Windows
Change-Id: I9b84bbe60ca9f2ad4ddc3119bc8cb88331a7d154
- remove unused MemoryManagementFixture.
MemoryLeaks are tracked using MemoryLeakListener no need to duplicate
with Fixure.
MMF should be used when you need to inject memory allocation failure
Change-Id: I95bcaa7051acf540c5b015c5489ed6a6fc38ee8e
- Align SIP kernel & STATE_SIP programming.
- on Linux address may be non 0
- on Windows address is expected to be always 0
Change-Id: I385ed59ef652382f3f17d1afe55f6050d07ed1f4
use preprocessor sequence to convert define value to stirng:
#define q(a) #a
#define tostr(b) q(b)
Change-Id: If0a9ccfcc543523309be4995c05125bf8fbf2081
- This removes Instruction Heap allocation from enqueue path
- Blocked path is handled as well
- Heap is no longer allocated on demand it is bind to kernelInfo.
Change-Id: I54545beceed3404ee0330a8bac2b0934944cac30
- Switch to internal heap for kernel ISA allocations.
- remove IH from various functions
- remove IHState from CSR , IH is never dirty
- ISA is no longer copied on enqueue calls.
Change-Id: I0099cf2a9ebab6192ea03a74dd35f7da963fd5a5
- Allocator now uses uint64_t instead of void*.
- This is due to the fact that it is required to work on 64 bit addresses
in 32 bit dll.
Change-Id: Ia715ea7913efc95a2974aff8dff390203d8125a8
- do not store fragment in map until hostPointerValidation
is done
- set pointers to nullptr after delete in cleanOsHandles
Change-Id: I0bf99c3215c4b91ce059bb4e94716671c49f1946
- if no options are passed try to read options
and internal options from text files.
- refactor code for reading from file.
Change-Id: I608c70f3afe77a4e4845fe1c96cc9d31464c6122
- Make sure that blocks ISA is made resident
- both blocked & non blocked path
- fix a bug where private surface was not made resident in blocked path.
Change-Id: Ie564595b176b94ecc7c79d7efeae20598c5874fb
Add macro to simplify iteration for gens, platforms and test configs
Common usage:
1. Write macro "macro_for_each_platform", you can use variables:
GEN_TYPE, GEN_TYPE_LOWER, PLATFORM_IT, PLATFORM_IT_LOWER
2. Write macro "macro_for_each_gen", you can use variables:
GEN_TYPE, GEN_TYPE_LOWER
3. In macro "macro_for_each_gen" call "apply_macro_for_each_platform"
4. Call "apply_macro_for_each_gen" with gen type (SUPPORTED/TESTED)
When needed iterate over test configurations:
1. Write macro "macro_for_each_test_config", you can use variables from
parent macro and SLICES, SUBSLICES and EU_PER_SS
2. In macro "macro_for_each_platform" call "apply_macro_for_each_test_config"
with specified type (AUB_TESTS/MT_TESTS/UNIT_TESTS)
Change-Id: Icd537f409a224a1ffade1874065f8fee66189350
- limit the amount of atomic reads
- change debug callback code to not test atomic
- change logic of seeing if we are within limits.
Change-Id: I67e6cf0558f2db60a50bf3ecdf7287d345bf50ae
-This is to make sure those functions are not called when gtpin is not used
-This preserves CPU instruction cache pollution.
-Our enqueue path needs to be as thin as possible, even with this small change
there is visible gain in ULT execution time.
Change-Id: I44cc2144754cda95ca1fe058184cd8a151b8d35c
- Dont check if resource is shared
- Check only gmm allocation capability
- Add missing support for 3d textures
Change-Id: I989533549087db74d5c238d639055462d5fea604
- Extract hw_info_config.h from Linux directory
- Extract enabling HwInfoConfig from Linux directory
- Create dummy implementations for HwInfoConfig on Windows
Change-Id: Ic9c7525ba9d9b654f238fb661cdbb3eecc421e29
- Measure time between wait calls. If delay is exeeded use QuickKmdSleep
- Kmd Notify helper functions
- Refactor overriding from debug variables
- Refactor Kmd Notify tests
Change-Id: I123c31f492d98fd304184f99ee0bf7d733d06f04
- simplify os agnostic memory manager
- remove pointer map
- move cpuPtr allocate logic to graphics allocation
- do not release tag allocation while injecting memory manager
- remove not needed ref count from Memory Allocation
Change-Id: I6ad81ee919c9cde939bc754a9dfc2db7568397d2
- KmdNotifyProperties struct for CapabilityTable that can be extended by
incoming KmdNotify related optimizations
- Quick KMD sleep optimization that is called from async events handler
- Optimization makes a taskCount check in busy loop with much smaller
delay than basic version of KMD Notify optimization
Change-Id: I60c851c59895f0cf9de1e1f21e755a8b4c2fe900