From: lkcl Date: Tue, 14 Jun 2022 18:16:33 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1783 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7bea712ca3af22831f1be0fc1857f506369a1a9b;p=libreriscv.git --- diff --git a/openpower/sv/mv.swizzle.mdwn b/openpower/sv/mv.swizzle.mdwn index 48954eefb..8c6e2fc5f 100644 --- a/openpower/sv/mv.swizzle.mdwn +++ b/openpower/sv/mv.swizzle.mdwn @@ -22,8 +22,12 @@ swizzle as well as constants 1/1.0 and 0/0.0 An extremely important aspect of 3D GPU workloads is that the source and destination subvector lengths may be *different*. A vector of -contiguous array of vec3 may only 2 elements swizzle-copied to a contiguous -array of vec2. Swizzle Moves support independent subvector lengths. +contiguous array of vec3 may only have 2 elements swizzle-copied to +a contiguous array of vec2. A contiguous array of vec2 sources +may have multiple of each vec2 elements copied to a contiguous +vec4 array. For this reason +Swizzle Moves support independent subvector lengths for both +source and destination. Although conceptually similar to `vpermd` of Packed SIMD VSX, Swizzle Moves come in immediate-only form with only up to four @@ -32,7 +36,8 @@ copy constants to the destination. 3D Shader programs commonly use the letters "XYZW" when referring to the four swizzle indices, and also often use the letters "RGBA" -if referring to pixel data. +if referring to pixel data. These designations are also +part of both the OpenGL(TM) and Vulkan(TM) specifications. # Format