Repository: playcanvas/engine
File: src/platform/graphics/graphics-device.js (JavaScript)

Code before:
     * True if the device supports compute shaders.
     *
     * @readonly
     * @type {boolean}
     */
    supportsCompute = false;

    /**
     * True if the device can read from StorageTexture in the compute shader. By default, the
     * storage texture can be only used with the write operation.
     * When a shader uses this feature, it's recommended to use a `requires` directive to signal the
     * potential for non-portability at the top of the WGSL shader code:
     * ```javascript
     * requires readonly_and_readwrite_storage_textures;
     * ```
     *
     * @readonly
     * @type {boolean}
     */
    supportsStorageTextureRead = false;

    /**
     * True if the device supports the WGSL subgroup_uniformity extension, which allows
     * subgroup functionality to be considered uniform in more cases during shader compilation.
     * When a shader uses this feature, use an `enable` directive at the top of the WGSL shader:
     * ```javascript
     * enable subgroups;
     * ```
     *
     * @readonly
     * @type {boolean}
     */
    supportsSubgroupUniformity = false;

    /**
     * True if the device supports the WGSL subgroup_id extension, which provides access to
     * `subgroup_id` and `num_subgroups` built-in values in workgroups.
     * When a shader uses this feature, use a `requires` directive at the top of the WGSL shader:
     * ```javascript
     * requires subgroup_id;
     * ```
     *
     * @readonly
     * @type {boolean}
     */
    supportsSubgroupId = false;

    /**
     * Currently active render target.
     *
     * @type {RenderTarget|null}

Review comment (bug):
I know support for `wgsl` is a bit flaky in the toolchain, but I would still specify it here since it's correct and makes it clear to readers of the source that this is WGSL code (even if the TypeDoc manual fails to color code it properly).

Code after:
     * True if the device supports compute shaders.
     *
     * @readonly
     * @type {boolean}
     */
    supportsCompute = false;

    /**
     * True if the device can read from StorageTexture in the compute shader. By default, the
     * storage texture can be only used with the write operation.
     * When a shader uses this feature, it's recommended to use a `requires` directive to signal the
     * potential for non-portability at the top of the WGSL shader code:
     * ```javascript
     * requires readonly_and_readwrite_storage_textures;
     * ```
     *
     * @readonly
     * @type {boolean}
     */
    supportsStorageTextureRead = false;

    /**
     * True if the device supports the WGSL subgroup_uniformity extension, which allows
     * subgroup functionality to be considered uniform in more cases during shader compilation.
     * When a shader uses this feature, use an `enable` directive at the top of the WGSL shader:
     * ```wgsl
     * enable subgroups;
     * ```
     *
     * @readonly
     * @type {boolean}
     */
    supportsSubgroupUniformity = false;

    /**
     * True if the device supports the WGSL subgroup_id extension, which provides access to
     * `subgroup_id` and `num_subgroups` built-in values in workgroups.
     * When a shader uses this feature, use a `requires` directive at the top of the WGSL shader:
     * ```wgsl
     * requires subgroup_id;
     * ```
     *
     * @readonly
     * @type {boolean}
     */
    supportsSubgroupId = false;

    /**
     * Currently active render target.
     *
     * @type {RenderTarget|null}