export const description = `Tests for capabilities added by rg11b10ufloat-renderable flag.`;import { makeTestGroup } from '../../../../common/framework/test_group.js';import { GPUConst } from '../../../constants.js';import { AllFeaturesMaxLimitsGPUTest } from '../../../gpu_test.js';import * as vtu from '../validation_test_utils.js';export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);g.test('create_texture').desc(`Test that it is valid to create rg11b10ufloat texture with RENDER_ATTACHMENT usage and/orsampleCount > 1, iff rg11b10ufloat-renderable feature is enabled.Note, the createTexture tests cover these validation cases where this feature is not enabled.`).params(u => u.combine('sampleCount', [1, 4])).fn(t => {t.skipIfDeviceDoesNotHaveFeature('rg11b10ufloat-renderable');const { sampleCount } = t.params;const descriptor = {size: [1, 1, 1],format: 'rg11b10ufloat' as const,sampleCount,usage: GPUConst.TextureUsage.RENDER_ATTACHMENT,};t.createTextureTracked(descriptor);});g.test('begin_render_pass_single_sampled').desc(`Test that it is valid to begin render pass with rg11b10ufloat texture formatiff rg11b10ufloat-renderable feature is enabled. Single sampled case.`).fn(t => {t.skipIfDeviceDoesNotHaveFeature('rg11b10ufloat-renderable');const texture = t.createTextureTracked({size: [1, 1, 1],format: 'rg11b10ufloat',sampleCount: 1,usage: GPUConst.TextureUsage.RENDER_ATTACHMENT,});const encoder = t.device.createCommandEncoder();const pass = encoder.beginRenderPass({colorAttachments: [{view: texture.createView(),clearValue: { r: 1.0, g: 0.0, b: 0.0, a: 1.0 },loadOp: 'clear',storeOp: 'store',},],});pass.end();encoder.finish();});g.test('begin_render_pass_msaa_and_resolve').desc(`Test that it is valid to begin render pass with rg11b10ufloat texture formatiff rg11b10ufloat-renderable feature is enabled. MSAA and resolve case.`).fn(t => {t.skipIfDeviceDoesNotHaveFeature('rg11b10ufloat-renderable');const renderTexture = t.createTextureTracked({size: [1, 1, 1],format: 'rg11b10ufloat',sampleCount: 4,usage: GPUConst.TextureUsage.RENDER_ATTACHMENT,});const resolveTexture = t.createTextureTracked({size: [1, 1, 1],format: 'rg11b10ufloat',sampleCount: 1,usage: GPUConst.TextureUsage.RENDER_ATTACHMENT,});const encoder = t.device.createCommandEncoder();const pass = encoder.beginRenderPass({colorAttachments: [{view: renderTexture.createView(),resolveTarget: resolveTexture.createView(),clearValue: { r: 1.0, g: 0.0, b: 0.0, a: 1.0 },loadOp: 'clear',storeOp: 'store',},],});pass.end();encoder.finish();});g.test('begin_render_bundle_encoder').desc(`Test that it is valid to begin render bundle encoder with rg11b10ufloat textureformat iff rg11b10ufloat-renderable feature is enabled.`).fn(t => {t.skipIfDeviceDoesNotHaveFeature('rg11b10ufloat-renderable');t.device.createRenderBundleEncoder({colorFormats: ['rg11b10ufloat'],});});g.test('create_render_pipeline').desc(`Test that it is valid to create render pipeline with rg11b10ufloat texture formatin descriptor.fragment.targets iff rg11b10ufloat-renderable feature is enabled.`).fn(t => {t.skipIfDeviceDoesNotHaveFeature('rg11b10ufloat-renderable');t.device.createRenderPipeline({layout: 'auto',vertex: {module: t.device.createShaderModule({code: vtu.getNoOpShaderCode('VERTEX'),}),entryPoint: 'main',},fragment: {module: t.device.createShaderModule({code: vtu.getNoOpShaderCode('FRAGMENT'),}),entryPoint: 'main',targets: [{ format: 'rg11b10ufloat', writeMask: 0 }],},primitive: { topology: 'triangle-list' },});});