summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/swr
Commit message (Collapse)AuthorAgeFilesLines
* swr/rast: autotools: add events_private.proto in dist tarball.Juan A. Suarez Romero2018-03-221-0/+1
| | | | Reviewed-by: Emil Velikov <[email protected]>
* gallium: add packed uniform CAPTimothy Arceri2018-03-201-0/+1
| | | | Reviewed-by: Marek Olšák <[email protected]>
* sched.h needs to be imported on Darwin/OSX targets.Apple SWE2018-03-141-0/+4
| | | | | | | | sched_yield is used but the include reference on Darwin is missing. This patch conditionally guards on Darwin/OSX to import sched.h first. Reviewed-by: Jeremy Huddleston Sequoia <[email protected]> Reviewed-by: Bruce Cherniak <[email protected]>
* Add processor topology calculation implementation for Darwin/OSX targets.Apple SWE2018-03-141-1/+55
| | | | | | | | | | | | The implementation for bootstrapping SWR on Darwin targets is based on the Linux version. Instead of reading the output of /proc/cpuinfo, sysctlbyname is used to determine the physical identifiers, processor identifiers, core counts and thread-processor affinities. With this patch, it is possible to use SWR as an alternate renderer on OSX to softpipe and llvmpipe. Reviewed-by: Jeremy Huddleston Sequoia <[email protected]> Reviewed-by: Bruce Cherniak <[email protected]>
* Revert "Add processor topology calculation implementation for Darwin/OSX ↵Dylan Baker2018-03-141-55/+0
| | | | | | | | | | | | | targets." This reverts commit de0d10db93d85de79c7b4451c4851ace2976f8f4. This breaks the build on at least Linux, probably other non-apple platforms. Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: Adam Jackson <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* Revert "sched.h needs to be imported on Darwin/OSX targets."Dylan Baker2018-03-141-4/+0
| | | | | | | | | | | This reverts commit 9dc5063262d0a5130cf0723a33079f3fd17560c3. This breaks the build on at least Linux, probably other non-apple platforms. Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: Adam Jackson <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* sched.h needs to be imported on Darwin/OSX targets.Apple SWE2018-03-131-0/+4
| | | | | | | | sched_yield is used but the include reference on Darwin is missing. This patch conditionally guards on Darwin/OSX to import sched.h first. Reviewed-by: Jeremy Huddleston Sequoia <[email protected]> Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
* Add processor topology calculation implementation for Darwin/OSX targets.Apple SWE2018-03-131-0/+55
| | | | | | | | | | | | The implementation for bootstrapping SWR on Darwin targets is based on the Linux version. Instead of reading the output of /proc/cpuinfo, sysctlbyname is used to determine the physical identifiers, processor identifiers, core counts and thread-processor affinities. With this patch, it is possible to use SWR as an alternate renderer on OSX to softpipe and llvmpipe. Reviewed-by: Jeremy Huddleston Sequoia <[email protected]> Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
* autotools: include all meson.build filesDylan Baker2018-03-091-0/+2
| | | | | | | | | | Otherwise SWR cannot be built with meson from an autotools generated tarball, such as the 18.0.0-rc4 tarball. Fixes: 16bf81383080 ("meson/swr: re-shuffle generated files") Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: George Kyriazis <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* swr/rast: Refactor memory gather operationsGeorge Kyriazis2018-03-092-6/+4
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Add KNOB_DISABLE_SPLIT_DRAWGeorge Kyriazis2018-03-092-8/+26
| | | | | | | | | | This is useful for archrast data collection. This greatly speeds up the post processing script since there is significantly less events generated. Finally, this is a simpler option to communicate to users than having them directly adjust MAX_PRIMS_PER_DRAW and MAX_TESS_PRIMS_PER_DRAW. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Add VPOPCNTGeorge Kyriazis2018-03-092-0/+9
| | | | | | Supports popcnt on vector masks (e.g. <8 x i1>) Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Add tracking for stream out topologyGeorge Kyriazis2018-03-094-5/+8
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Add split draw and other state information to DrawInfoEvent.George Kyriazis2018-03-094-32/+22
| | | | | | Removed specific split draw events. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Refactor api and worker event handlers.George Kyriazis2018-03-092-35/+52
| | | | | | | | | In the API event handler we want to share information between the core layer and the API. Specifically, around associating various ids with different kinds of events. For example, associate render pass id with draw ids, or command buffer ids with draw ids. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Add support for generalized late and early z/stencil statsGeorge Kyriazis2018-03-092-0/+73
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Rasterized Subspans stats supportGeorge Kyriazis2018-03-094-0/+30
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Added commentGeorge Kyriazis2018-03-091-0/+1
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* tgsi/scan: use wrap-around shift behavior explicitly for file_maskRoland Scheidegger2018-03-061-1/+1
| | | | | | | | | | | | | | The comment said it will only represent the lowest 32 regs. This was not entirely true in practice, since at least on x86 you'll get masked shifts (unless the compiler could recognize it already and toss it out). It turns out this actually works out alright (presumably noone uses it for temp regs) when increasing max sampler views, so make that behavior explicit. Albeit it feels a bit hacky (but in any case, explicit behavior there is better than undefined behavior). Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* swr/rast: Fix macOS macro.Vinson Lee2018-03-041-2/+2
| | | | | | | Fixes: a25093de7188 ("swr/rast: Implement JIT shader caching to disk") Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-By: George Kyriazis <[email protected]>
* swr/rast: revert clip distance precisionGeorge Kyriazis2018-02-282-4/+17
| | | | | | Fixes piglit tests that broke with 8a64593bde Reviewed-By: Bruce Cherniak <[email protected]>
* swr/rast: Faster frustum prim cullingGeorge Kyriazis2018-02-281-3/+7
| | | | | | | | | Fix clipper validMask setting. We don't need to run frustum rejected primitives through the clipper. Perform frustum culling with only frustum clip codes. Guardband clip codes cannot be used because they overlap frustum codes. Reviewed-By: Bruce Cherniak <[email protected]>
* swr/rast: Consolidate TRANSLATE_ADDRESSGeorge Kyriazis2018-02-284-6/+28
| | | | | | | | Translate is now part of an overloaded LOAD call which required a change to the code gen to skip the load functions in order to handle them manually to make them virtual. Reviewed-By: Bruce Cherniak <[email protected]>
* swr/rast: Code generation cleanupGeorge Kyriazis2018-02-281-15/+21
| | | | | | Generate more compact code from gen_llvm.hpp. Reviewed-By: Bruce Cherniak <[email protected]>
* swr/rast: Remove draw type from event definitionsGeorge Kyriazis2018-02-283-12/+8
| | | | | | | | | | | - Have the draw type sent to DrawInfoEvent in handlers created in archrast.cpp. The draw type no longer needs to be sent during during AR_API_EVENT() call in api.cpp. - Remove draw type from event defintions in events_private.proto, no longer needed Reviewed-By: Bruce Cherniak <[email protected]>
* swr/rast: whitespace changeGeorge Kyriazis2018-02-281-1/+1
| | | | Reviewed-By: Bruce Cherniak <[email protected]>
* swr/rast: Fix index buffer overfetch issue for non-indexed drawsGeorge Kyriazis2018-02-281-0/+15
| | | | | | | | Populate pLastIndex, even for the non-indexed case. An zero pLastIndex can cause the index offsets inside the fetcher to have non-sensical values that can be either very large positive or very large negative numbers. Reviewed-By: Bruce Cherniak <[email protected]>
* swr: remove dead LLVM code pathsEmil Velikov2018-02-233-28/+0
| | | | | | | | | LLVM requirement was bumped to 4.0.0 with earlier commit. Hence any code tailored for older versions is now unreachable. Signed-off-by: Emil Velikov <[email protected]> Reviewed-By: George Kyriazis <[email protected]> Reviewed-by: Andres Gomez <[email protected]>
* swr: bump minimum supported LLVM version to 4.0Andres Gomez2018-02-202-3/+3
| | | | | | | | | | | | | | | | | | Since radv and radeonsi removed support for LLVM 3.9 the distcheck target got broken because SWR distribution needed 3.9.x. After checking with George Kyriazis, SWR is OK with moving to LLVM 4.0 and above, which will solve this problem. Fixes: 3bf1e036e8a ("amd: remove support for LLVM 3.9") Cc: George Kyriazis <[email protected]> Cc: Tim Rowley <[email protected]> Cc: Emil Velikov <[email protected]> Cc: Dylan Baker <[email protected]> Cc: Eric Engestrom <[email protected]> Signed-off-by: Andres Gomez <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Reviewed-by: George Kyriazis <[email protected]>
* gallium: allow drivers to impose BO flags restrictions on constant buffer 0Marek Olšák2018-02-171-0/+1
| | | | Required by radeonsi for optimal behavior.
* swr/rast: blend_epi32() should return Integer, not FloatGeorge Kyriazis2018-02-161-1/+1
| | | | | | | fix gcc8 compiler error for KNL. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105029 Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Normalize path for debug metadataGeorge Kyriazis2018-02-161-1/+2
| | | | | | in template gen_llvm.hpp Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Consolidate archrast Draw eventsGeorge Kyriazis2018-02-164-26/+79
| | | | | | | | | | | | | | | | Consolidate archrst draw events into single draw event with an attribute that represents the type of draw - Add handlers for new private proto versions of DrawInstancedEvent, DrawIndexedInstancedEvent, DrawInstancedSplitEvent, and DrawIndexedInstancedSplitEvent - Convert the draw events to generic DrawInfoEvents - parse_proto_event_fields() replaces 'AR_DRAW_TYPE' as a field type with 'uint32_t'. This draw type is actually an enum, but can be represented as an unsigned integer. - is_draw_or_dispatch() recognizes DrawInfoEvent as a draw event Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Add semantics for translating addressGeorge Kyriazis2018-02-162-0/+5
| | | | | | Added support for another full translation path in fetch jitter. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Convert C Sampler intrinsicsGeorge Kyriazis2018-02-162-0/+19
| | | | | | | | | | Convert portions of the C sampler to the rasty SIMD lib. Also fix SRL call with a non-immediate. Don't count on the compiler automagically converting an srli call to srl if the shift count isn't an immediate. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Make SIMDLib templated types easier to useGeorge Kyriazis2018-02-165-298/+307
| | | | | | "typename SIMD_T::TypeName" --> "TypeName<SIMD_T>" Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Be more explicit when fetching next componentGeorge Kyriazis2018-02-162-4/+11
| | | | | | | Use a new function to denote that we want to get offset to next component and hide the fact that GEP is used underneath. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Fix bug related to passing AR handleGeorge Kyriazis2018-02-161-1/+1
| | | | | | We were passing a garbage handle. Let's not do that. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Fix primitive replication issue in tesselation PA.George Kyriazis2018-02-162-2/+3
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Use llvm intrinsic masked gatherGeorge Kyriazis2018-02-162-0/+14
| | | | | | | | | Use llvm intrinsic masked.gather instead of manual unroll for the cases where we have vector of pointers. Improves llvm IR debug experience by reducing a ton of IR to a single intrinsic call. Also seems to reduce overall stack use considerably. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Misc cleanupGeorge Kyriazis2018-02-163-49/+60
| | | | | | Together with correct detection of clipDistance NaNs when no cullDistance is set Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Renamed variable in vertexbufferstateGeorge Kyriazis2018-02-163-6/+8
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Fix GATHERPS to avoid assertions.George Kyriazis2018-02-161-2/+3
| | | | | | | With the pBase type change, LLVM was asserting because of wrong types. Cast appropriately. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: More precise user clip distance interpolationGeorge Kyriazis2018-02-162-17/+4
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Cull prims when all verts have negative clip distancesGeorge Kyriazis2018-02-161-0/+4
| | | | | | Performance optimization, and fixes some clipping issues. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: whitespace and comment cleanupGeorge Kyriazis2018-02-162-20/+21
| | | | Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Fix invalid number of attributesGeorge Kyriazis2018-02-161-1/+1
| | | | | | | | Fix invalid number of attributes passed into tesselation PA. Needs to take into account any offsets from the shader. Innocuous issue, but removes an assert firing in debug. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Add clipper stats.George Kyriazis2018-02-164-17/+31
| | | | | | | | | | | | | | Clipper event is now: event ClipperEvent { uint32_t drawId; uint32_t trivialRejectCount; uint32_t trivialAcceptCount; uint32_t mustClipCount; }; Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Separate event types to public and privateGeorge Kyriazis2018-02-167-119/+155
| | | | | | | | | | | | Split into two proto files and modify appropriate build rules for configure / scons / meson builds. There are private internal events (proxy) that communicate information from rasterizer to ArchRast. ArchRast can use these events to calculate a final answer and then emit other public events which will be saved to file. Users will use the public proto file and not the private one. Reviewed-by: Bruce Cherniak <[email protected]>
* swr/rast: Clean up event types and remove BE eventsGeorge Kyriazis2018-02-162-80/+0
| | | | | | Begin/End events not needed anymore. Reviewed-by: Bruce Cherniak <[email protected]>