summaryrefslogtreecommitdiffstats
path: root/src/intel/isl
Commit message (Collapse)AuthorAgeFilesLines
* isl: Fix assert on raw buffer surface state sizeNanley Chery2016-07-151-1/+8
| | | | | | | | See inline PRM reference. Cc: 12.0 <[email protected]> Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl/state: Add support for handling auxiliary surfacesJason Ekstrand2016-07-132-2/+48
| | | | | Reviewed-by: Topi Pohjolainen <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* isl: Add an auxiliary surface usage enumJason Ekstrand2016-07-131-0/+26
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Add support for color control surfacesJason Ekstrand2016-07-136-0/+102
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Add support for multisample compression surfacesJason Ekstrand2016-07-133-0/+15
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Add support for HiZ surfacesJason Ekstrand2016-07-137-3/+63
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Kill off isl_format_layout::bsJason Ekstrand2016-07-135-18/+17
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Take bpb rather than bs in tiling_get_infoJason Ekstrand2016-07-132-6/+6
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Use bpb in a few places where it's more natural than bsJason Ekstrand2016-07-133-4/+4
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Use bpb for determining YUV image paddingJason Ekstrand2016-07-131-1/+1
| | | | | | | When we initially dropped bpb in favor of bs, we accidentally didn't change this one line properly. This brings it back to what it should be. Reviewed-by: Chad Versace <[email protected]>
* isl: Bring back isl_format_layout::bpbJason Ekstrand2016-07-132-2/+4
| | | | | | | | A while ago we got rid of the bits-per-block because we thought we didn't need it. We're about to introduce some very useful 1 and 2-bit formats so we really should be able to handle them again. Reviewed-by: Chad Versace <[email protected]>
* isl: Change the physical size of a W-tile to 128x32Jason Ekstrand2016-07-132-12/+13
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Rework the way we define tile sizes.Jason Ekstrand2016-07-132-81/+137
| | | | | | | | | | | This is based on a very long set of discussions between Chad and myself about how we should properly represent HiZ and CCS buffers. The end result of that discussion was that a tiling actually has two different sizes, a logical size in elements, and a physical size in bytes and rows. This commit reworks ISL's pitch and size calculations to work in terms of these two sizes. Reviewed-by: Chad Versace <[email protected]>
* isl: Rework the way we handle surface paddingJason Ekstrand2016-07-131-27/+25
| | | | Reviewed-by: Chad Versace <[email protected]>
* isl: Use ARRAY_PITCH_SPAN_FULL for depth/stencil surfaces on gen7Jason Ekstrand2016-07-131-1/+1
| | | | | | | We helpfully inserted a PRM quotation about how we need to use ARRAY_PITCH_SPAN_FULL and then set it to COMPACT. Oops... Reviewed-by: Chad Versace <[email protected]>
* isl: Stop multiplying height by block sizeJason Ekstrand2016-07-131-2/+2
| | | | | | | | The row pitch already specifies the size of a row of elements. Multiplying by the block height simply causes us to allocate as muc as 12 times more memory than needed for compressed textures. Reviewed-by: Chad Versace <[email protected]>
* isl: Get rid of tiling_get_extentJason Ekstrand2016-07-132-17/+0
| | | | | | It was unused Reviewed-by: Chad Versace <[email protected]>
* Android: add missing u_math.h include path for libmesa_islRob Herring2016-06-281-0/+2
| | | | | | | | | | | | | | | Commit 87d062a94080 ("i965: Fix shared local memory size for Gen9+.") added u_math.h include which broke the Android build: In file included from external/mesa3d/src/intel/isl/isl_storage_image.c:25: In file included from external/mesa3d/src/mesa/drivers/dri/i965/brw_compiler.h:29: external/mesa3d/src/mesa/main/macros.h:35:10: fatal error: 'util/u_math.h' file not found ^ Add the missing include paths for libmesa_isl. Signed-off-by: Rob Herring <[email protected]> Reviewed-by: Kenneth Garunke <[email protected]>
* anv,isl: Lower storage image formats in anvJason Ekstrand2016-06-221-7/+1
| | | | | | | | | | ISL was being a bit too clever for its own good and lowering the format for us. This is all well and good *if* we always want to lower it. However, the GL driver selectively lowers the format depending on whether the surface is write-only or not. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Allow for full 31-bit buffer texture sizesJason Ekstrand2016-06-221-1/+1
| | | | | | | | Ivy Bridge and above can handle up to 2^31 elements for RAW buffer surfaces. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Don't use designated initializers for buffer surface stateJason Ekstrand2016-06-221-23/+23
| | | | | Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Add assertions for buffer surface restrictionsJason Ekstrand2016-06-221-0/+11
| | | | | Acked-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Don't set SurfacePitch for gen9 1-D texturesJason Ekstrand2016-06-221-0/+3
| | | | | | | | This field is ignored by the hardware in this case and, on very large 1-D textures, it can end up being larger than the maximum allowed value. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Use TILEWALK_XMAJOR for linear surfaces on gen7Jason Ekstrand2016-06-221-2/+2
| | | | | | | | | This matches better what happens on gen8 where the "Tiled Surface" and "Tile Walke" bits are combined into a single two-bit value. This is also more consistent with what the GL driver does. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Emit no-op mip tail setup on SKLJason Ekstrand2016-06-221-0/+8
| | | | | | | | This hasn't ever been a problem in the past but it is recommended by the hardware docs. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Only set cube face enables if usage includes CUBE_BITJason Ekstrand2016-06-221-7/+9
| | | | | | | | It seems safe to set it all the time, but this reduces the diff between the way i965 does it and what ISL does. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Use the layout for computing qpitch rather than dimensionsJason Ekstrand2016-06-221-19/+15
| | | | | | | | | | For depth/stencil 1-D textures on SKL, we want them layed out in the old format that has been used since gen4. In order for the surface state fill-out code to handle, this it needs to distinguish based on layout rather than just dimensionality. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Set the IntegerSurfaceFormat bit on HaswellJason Ekstrand2016-06-221-0/+4
| | | | | | | This fixes 688 Vulkan CTS tests on Haswell. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/format: Mark R9G9B9E5 as containing 9-bit unsigned float channelsJason Ekstrand2016-06-221-1/+1
| | | | | Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Don't set RenderTargetViewExtent for texture surfacesJason Ekstrand2016-06-221-4/+18
| | | | | | | | | | The docs specify that this only matters for render targets and surfaces used with typed dataport messages. On some platforms (gen4-6) the Depth field has more bits than RenderTargetViewExtent so we can have textures with more levels than we can render to. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Set SurfaceArray based on the surface dimensionJason Ekstrand2016-06-221-1/+1
| | | | | | | | | | According to the PRM, you can't set SurfaceArray for 3D or buffer textures. There doesn't seem to be a good reason not to set it when we can. On the other hand, if we don't set it we can end up getting strange results for 1-layer array textures such as textureSize() returning the wrong results. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Don't force-disable L2 bypass for everythingJason Ekstrand2016-06-221-5/+0
| | | | | | | | | We already set the bit in the few cases where it's required by the docs so there's no need to set it all the time. This has no noticable perf impact for Dota 2 on Vulkan with the time demo I have. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Refactor the setup of clear colorsJason Ekstrand2016-06-221-18/+22
| | | | | | | | This commit switches clear colors to use #if's instead of a C if. This lets us properly handle SNB where the clear color field doesn't exist. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Refactor the per-gen isl_to_gen_h/valign tablesJason Ekstrand2016-06-221-6/+8
| | | | | | | | | This moves the #if's around so that halign and valign have different sets of #if conditions. This also prepares us for SNB because isl_to_gen_halign is not defined at all on gen6. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Return an extent3d from the halign/valign helperJason Ekstrand2016-06-221-22/+11
| | | | | Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Put pitch calculations togetherJason Ekstrand2016-06-221-22/+20
| | | | | | | This is purely cosmetic, but it makes things look a bit more readable. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Put all dimension setup together and towards the topJason Ekstrand2016-06-221-80/+74
| | | | | | | This is purely cosmetic, but it makes things look a bit more readable. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Put surface format setup at the topJason Ekstrand2016-06-221-7/+7
| | | | | | | This is purely cosmetic, but it makes things look a bit more readable. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Remove some unused fieldsJason Ekstrand2016-06-221-9/+0
| | | | | | | | They're already zero-initialized and we have no plans of doing anything more interesting with them. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl/state: Don't use designated initializers for the surface stateJason Ekstrand2016-06-221-47/+48
| | | | | | | | | While designated initializers are nice, they also force us to put some things in the initializer and some things later. Surface state setup is complicated enough that this really hurts readability in the long run. Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* genxml/gen8,9: Prefix the multisample format enum with MSFMTJason Ekstrand2016-06-221-8/+0
| | | | | | | This is what gen7 does and it's nice to have a prefix Reviewed-by: Chad Versace <[email protected]> Cc: "12.0" <[email protected]>
* isl: Replace bash generator with python generatorDylan Baker2016-06-134-137/+217
| | | | | | | | | | | | | | This replaces the current bash generator with a python based generator using mako. It's quite fast and works with both python 2.7 and python 3.5, and should work with 3.3+ and maybe even 3.2. It produces an almost identical file except for a minor layout changes, and the addition of a "generated file, do not edit" warning. Cc: "12.0" <[email protected]> Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* isl: add support for Android libmesa_isl static libraryMauro Rossi2016-06-021-0/+155
| | | | | | | | | | | | | | | | isl library is needed to build i965, libmesa_isl static library is added to fix related Android building errors. Any attempt to build libmesa_genxml as phony package module failed to deliver gen{7,75,8,9}_pack.h generated headers, needed for libmesa_isl_gen{7,75,8,9} Due to constraints in Android Build System, libmesa_genxml is built as static, at least one source is needed, so dummy.c is autogenerated for this scope, libmesa_genxml dependency is declared using LOCAL_WHOLE_STATIC_LIBRARIES, to avoid building errors due to missing genxml/gen{7,75,8,9}_pack.h headers. Cc: <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* isl: automake: don't include isl_format_layout.c in two lists.Emil Velikov2016-06-022-2/+1
| | | | | | | | | | Including the file in both ISL_FILES and ISL_GENERATED_FILES makes the actual dependency list less obvious. v2: Drop unrelated vulkan hunk (Jason). Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl: add isl_priv.h to the sources listEmil Velikov2016-05-301-0/+1
| | | | | | | | Otherwise it will be missing from the release tarball. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl: move the sources lists to Makefile.sourcesMauro Rossi2016-05-302-32/+39
| | | | | | | [Emil Velikov: use the file in the autoconf build] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl: automake: list builddir before srcdir in the includes listEmil Velikov2016-05-301-4/+3
| | | | | | | | | As seen elsewhere - we want to include the freshly built sources as opposed the the (likely) stale ones in the srcdir. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl: automake: flatten the tests rulesEmil Velikov2016-05-301-9/+4
| | | | | | | | | | | Fold the unneeded extra variable tests_ldadd, the explicit sources section (single file with the default extension) and flip the check_PROGRAMS <> TESTS order (TESTS includes scripts, while check_PROGRAMS is binaries only). Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl: automake: remove unneeded install-lib-links.mk includeEmil Velikov2016-05-301-2/+0
| | | | | | | | | | One uses the makefile to create compatibility symlinks (to $top_builddir/libs) for shared libraries/modules. As we don't create any here, there's no need to include the file. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl: automake: remove unneeded SUBDIRSEmil Velikov2016-05-301-3/+0
| | | | | | | | | As we do not include any other subdirs but self, we don't need to set it. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>