Commit Graph

54 Commits

Author SHA1 Message Date
Dunajski, Bartosz
5408913d38 Set HwInfo to GmmHelper on Device creation
This allows querying HwInfo from code that doesnt have access to Device

Change-Id: I0084f824f557cd85c2fdfbf0ff2ec71118e9af2e
2018-06-29 11:02:52 +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
Dunajski, Bartosz
88edc7279d Improve returned row pitch calculation for multisampled images
Change-Id: I2fbf413ba83941682fa2bd0353060cab3f534d1a
2018-06-13 13:00:26 +02:00
Zdunowski, Piotr
0cc10e47cc Use device instead of context when programing surface state.
Change-Id: I67615036d373cf905762a43a92562bf3d84854a5
2018-06-11 17:20:11 +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
Maciej Dziuban
3bfbcad8c6 Fix validation of size when creating image from buffer
Change-Id: Iaf9b8aae8bd3a2f2ea2b4a3d7f751dbcf4df7c0e
2018-06-06 13:17:10 +02:00
Hoppe, Mateusz
d019638119 Fix image from subbuffer offsets
- change 32 bit offset to size_t to account for offsets bigger
than 4 GB in SurfaceOffsets
- change ImageInfo offset to size_t type
- fix hostptr offseting in subbuffer creation - null hostptr
shouldn't be offseted

Change-Id: I18a5b8eacbd8c9e40c1f2effe5ded4fa8b453395
2018-05-29 16:29:25 +02:00
Hoppe, Mateusz
4c4e682bc7 Set correct offset for images created from buffer
- images from subbuffer with non-zero offset relative to
parent buffer didn't have correct Surface Address offset

Change-Id: I6ae2b87f8c9d19e40ec14a29b5eadc7401db18ad
2018-05-24 18:12:55 +02:00
Woloszyn, Wojciech
8a488ad52f Fix reported row/slicePitch for mip-maps
- use information from gmm correctly
- modify computation on gen8

Change-Id: Iaefcc20ce9436ef70cd2f4bc36654932c4b5af49
2018-05-22 10:36:54 +02:00
Mrozek, Michal
4cb86b4045 Add debug flag that controls zero copy for CL_MEM_USE_HOST_PTR buffers.
- when flag is enabled driver will not go with zero copy path for
CL_MEM_USE_HOST_PTR flag

- flag doesn't work in shared context where we must accept zero copy
storage.

Change-Id: Idda94f296dd12e7e3ccb15f2224808287551ac97
2018-05-21 12:08:59 +02:00
Dunajski, Bartosz
f40dc29ea1 Dont change multisampled surface state storage for R32_FLOAT_X8X24 type
Change-Id: I5e386057e4368e0d80bed496f2ddc19b5ae271a5
2018-04-12 15:47:46 +02:00
Mateusz Jablonski
5d296f15e3 Validate image 2d sizes unless parent image is nv12
when any check in Image::validate method failed then early return

Change-Id: Ib28110ac493f5930ffa99fa7463443e9e7fc8fcf
2018-04-10 11:41:00 +02:00
Mateusz Jablonski
1843b23692 Fix image 2d validation
check image sizes only for image without parent mem object

Change-Id: I73189f1c73653f609c6e4d7dcb7a85d06a2f858a
2018-04-10 09:39:52 +02:00
Chodor, Jaroslaw
10ada58bd6 Fix for context lifetime management
Don't destroy context if any related memobject is alive

Change-Id: I7d4776b6bb16373adb367d2ab4e249c62353afbe
2018-04-09 17:23:29 +01:00
Mateusz Jablonski
ac45ff74ec Fix creating image from image
- allow creating image 2d from non NV12 image 2d
- validate image descriptor and format when create image from image

Change-Id: Ie7887e75f1450fc723dc1d1ae9ff5639d88835fc
2018-04-09 11:29:11 +02:00
Mateusz Jablonski
79a0e3253e Enable transforming image 3d to image 2d array
Change-Id: I8fdc6899780481bdebeaf858a330e9dea822bda3
2018-04-05 09:10:54 +02:00
Chodor, Jaroslaw
0a97dfbb2f [1/n] Mipmap support
* 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
2018-04-05 01:09:27 +02:00
Milczarek, Slawomir
6506df559b Fixed mip count programming in surface state for regular images
This commit addresses crashes during AUB playbacks in image scenarios.

Change-Id: I6d2f3917cdb3458c62382205c1a17bdc57239bb4
2018-04-04 16:50:11 +02:00
Mateusz Jablonski
575d1bf381 Cmake refactor part 20
set global properties with runtime sources, libult sources and
os interface tests

Change-Id: I9a84edf2f021b4581a16c19c7dbb0b2f94c33f4d
2018-03-23 15:51:12 +01:00
Pawel Wilma
ff1d2361f3 Add patch info comments to AUB dump
Collect patching information and add as comments to AUB dump.

Change-Id: Ib7c903a2589d68b6e3e614c1774c7cd5a000c29f
2018-03-23 13:08:54 +01:00
Woloszyn, Wojciech
0ad81024b7 Implement cl_khr_mipmap_image [1/n]
- Add mipmap image handling for clEnqueueReadImage, clEnqueueWriteImage
- Fix mipmap image handling for clCreateImage

Change-Id: I42938a330b55c7e69a16c26dce3ab5d66f8a8938
2018-03-21 10:51:13 +01:00
Hoppe, Mateusz
76dd4ac1f3 service read_only memory passed to CreateBuffer
- only when cl_mem_flags allows for read only memory
and USE_HOST_PTR is used

Change-Id: Id023f9cb551f7d81ec680de9cc546005980e6f75
2018-03-15 18:29:38 +01:00
Dunajski, Bartosz
08c2379f6e Validate region and origin for all image API calls
Change-Id: I28782d8838cf8f5d800f76c922fcb59235f637a1
2018-03-09 08:24:25 +01:00
Dunajski, Bartosz
23c1c4fea6 clEnqueueMapImage origin and region usage fixes
- Return error on origin > 0 or region > 1 when its not allowed
- For 1Darray, array region and origin are stored on 2nd position.
  For 2Darray, its on 3rd postion
- Fix map offset for 1Darray image
- Fix CPU data transfer for 1Darray image

Change-Id: Id35ba5f54f117e7af318ca7e6e03c1fc942ce729
2018-03-08 08:54:48 +01:00
Dunajski, Bartosz
f6a8cb3279 Improve GraphicsAllocation reuse management
Change-Id: Iee14b4641712231c801676b758546be76deef636
2018-03-05 10:56:34 +01:00
Dunajski, Bartosz
e579578bc8 Reuse GraphicsAllocation mechanism for shared resources
Change-Id: I4bfd2d3387ae0fc10d461ebc1ada94614ab7f6b5
2018-03-02 16:51:28 +01:00
Mateusz Jablonski
d1aa5f978d Cmake refactor part 6
Add macro to add all subdirectories
Add macro to create project source tree based on target sources
Small cleanup runtime/CMakeLists.txt

Change-Id: I9b99145c544f648c4c3fe7421752d0c5d9504edf
2018-03-02 00:39:41 +01:00
Woloszyn, Wojciech
5c8cd51fc8 Use allocateGraphicsMemoryForImage for mipmaps
Change-Id: I0cd740ca4c8286fb73f766b74abc50ed53cfc9d0
2018-03-01 20:39:15 +01:00
Dunajski, Bartosz
dd44a87d5f Map/unmap enqueue fixes [6/n]: Support multiple map operations
- Dont make cpu/gpu writes on read-only unmap
- Read/Write on limited map range only
- Overlaps checks for non read-only maps
- Fixed cmd type on returned event

Change-Id: I98ca542e8d369d2426a87279f86cadb0bf3db299
2018-02-23 10:45:06 +01:00
Dunajski, Bartosz
b4f79e036f Map/unmap enqueue fixes [5/n]: Unify offset calculation
Change-Id: I53eafe89532d43c5cf5139ed3fac0a87619dc7a3
2018-02-21 20:12:52 +01:00
Dunajski, Bartosz
e0ca78ccea Map/unmap enqueue fixes [3/n]: Map params inconsistency
- Introducing MapInfo struct which will be used as container for multiple
  map operations
- Unified mapped offset and size for Buffers and Images
- Fixed incorrect map params for CPU and GPU path
- Missing API level checks


Change-Id: Ib4077c9e2c0c333b131ffd5ccbc4a1404920eb5b
2018-02-16 08:28:29 +01:00
Dale Stimson
4e6fe62eb6 Convert FALLTHROUGH comments to C++17 [[fallthrough]] attribute
Use conditionals and a macro to avoid provoking compilers that do
not support this attribute.

Adds a macro named CPP_ATTRIBUTE_FALLTHROUGH which is invoked right
before a following case statement to declare that the intent is to
fall through.  Example:

    ...
    case xxx:
       ...
       CPP_ATTRIBUTE_FALLTHROUGH;
    case yyy:
    ...

The gcc/clang alternative of adding comments that contain "FALLTHROUGH"
suffers from the problem that *by default* ccache strips the comments
so that they are not present for the real compilation.

Change-Id: I77ddeb7dae46db8398b014a93f6a71bedc64ada9
Signed-off-by: Dale Stimson <dale.b.stimson@intel.com>
2018-02-14 07:08:00 -08:00
mplewka
94c996a452 Provide hint when create zero copy image
Change-Id: I526a81e0d14daba98574575e8c945214b0bda810
2018-02-14 12:56:04 +01:00
Dunajski, Bartosz
4f2a05ac88 Map/unmap enqueue fixes [2/n]: CPU operations on limited range
- Curently each non-zerocopy CPU operation on map/unmap make a full copy
  using hostPtr
- This commit adds functionality to select specific range of copy
- Multiple mapping with different size is not supported yet,
  so copy will be made on full range for now. This is for future usage.

Change-Id: I7652e85482ba6fffb2474169447baf9b080dcd1e
2018-02-13 16:29:01 +01:00
Dunajski, Bartosz
72b78d15ee Map/unmap enqueue fixes [1/n]: Unify Buffer and Image paths
Change-Id: I59bf18072c15367ff6caec5dbdc1350ea2d93281
2018-02-09 17:35:03 +01:00
mplewka
21c1dce943 Enable zero copy for enqueueImage r/w with hints
Change-Id: I6d4379b4bebaca162f859ea790f6a77475f7e94e
2018-02-06 19:00:15 +01:00
Mateusz Jablonski
b027a82442 Cmake refactor part 2:
Move defining runtime sources into cmake files in subdirectories

Change-Id: Ic83c12fee65e04d19e7c8e1f88b939f03af7fa28
2018-02-05 13:40:46 +00:00
Dunajski, Bartosz
844f956244 Remove redundant/recursive checks in unmap operations
- Some of the paths were made only for ULTs
- Params like mappedPtr were ignored
- Improve confusing method names
- Fix for memory leak in map shared buffer path (not tested code)

Change-Id: I8a69035f1d1c340f2d131a6f8d7e13116e3ddabc
2018-02-02 10:36:09 +01:00
Jacek Danecki
73e2e72d07 waSamplerCacheFlushBetweenRedescribedSurfaceReads fix
Change-Id: Id322f58ce6997c8710ed2d8faf4f3c3f3d2ef0c3
2018-02-01 15:37:18 +01:00
Dunajski, Bartosz
8974af4de8 SNORM formats support
Change-Id: I4138a3e96788aab2a8f3af108dcbfa6f81006bf9
2018-02-01 11:18:01 +01:00
Dale Stimson
a3a21d8168 runtime/mem_obj/image.cpp - Avoid warning from switch case fallthrough
For the new Linux/Fedora configuration with introduction of gcc 7.2,
option -Wimplicit-fallthrough is implemented.  This option requests a
warning if a switch case falls through into the next case.  This was
causing build errors.

For C++17 (and g++ 7 regardless), standard attribute [[fallthrough]]
notifies the compiler that the fallthrough is intentional.
For clang++ 5 (with -std=c++11 or later) and g++ 7, built-in
preprocessor function __has_cpp_attribute(fallthrough) returns true.
Currently, msvc does not have __has_cpp_attribute.

Note: The use of __has_cpp_attribute has been proposed for c++2x and
is advocated by (81-char link broken in two to avoid 80 char hard limit):
    https://isocpp.org/std/standing-documents/
    sd-6-sg10-feature-test-recommendations

For gcc 7, a comment consisting of "FALLTHROUGH" will accomplish the
same thing with -Wimplicit-fallthrough=<n>, for n <= 4.

The diagnostic:

/opt/src/src/vpg-compute-neo/runtime/mem_obj/image.cpp:146:24: error:
this statement may fall through [-Werror=implicit-fallthrough=]
             imageDepth = imageDesc->image_depth;
             ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/opt/src/src/vpg-compute-neo/runtime/mem_obj/image.cpp:148:9: note: here
         case CL_MEM_OBJECT_IMAGE2D:
         ^~~~

Change-Id: I604700a23b09c8bf22baf5614700a8b76dbe4cdd
Signed-off-by: Dale Stimson <dale.b.stimson@intel.com>
2018-01-31 12:06:30 -08:00
Mateusz Jablonski
285ecbd9cb Add method to append gen specific surface state params
Add method to check if image format has alpha channel

Change-Id: I138f766c17654917b0357b1ec2250a8489738bef
2018-01-31 17:18:41 +01:00
Zdanowicz, Zbigniew
f5513b6a1d Handle host pointer not meeting memory manager criteria
Change-Id: I65eec6083f1d8bb7b5f46e1a2e015aa6fd7f3d9f
2018-01-29 11:40:32 +01:00
Dunajski, Bartosz
3532c6373f D3D sharable 2D texture: Map Aux GpuVa and set renderCompressed if possible
Change-Id: I508965d07f456af74ecef6e980337f42f5967b43
2018-01-26 08:38:59 +01:00
mplewka
251de14ee6 Enable zero copy for enqueueWriteBufferRect with hint
Change-Id: I411f00b98056307906c02d34e793cefe460735ba
2018-01-25 11:48:10 +01:00
Dunajski, Bartosz
f3f53ed14b Missing UnifiedAuxSurface check in MCS scenarios
Change-Id: I3b53ddea21997604481ece554cd24a6809523ab8
2018-01-25 10:25:12 +01:00
Dunajski, Bartosz
5bee3c3312 Program CCS Aux params even if MCS allocation is available
Change-Id: I9ae5c1685fa9913e93a7660120da97ba777add31
2018-01-24 11:03:11 +01:00
mplewka
2c2bbbcdbb Add support for zero-copy r/w buffer
Change-Id: Ie9f3f2211d107eb338bd97692d36e9c7d7a0feab
2018-01-22 09:40:51 +01:00
Dunajski, Bartosz
8b9713582a Aux programming fixes + ULT improvements
- Dont program clear color aux params for multisampled images (depth or MCS)
- Mock Gmm PageTable manager default actions
- Local Wddm for WddmCsr tests to make expects on creation
- Set Gmm PageTable manager for Wddm Memory Manager tests without WddmCsr

Change-Id: I8ccfddb06340bc81184e07eff5a7078756d28571
2018-01-18 14:40:56 +01:00