export const description = `Validation for encoding queries.`;import { makeTestGroup } from '../../../../../common/framework/test_group.js';import { kQueryTypes } from '../../../../capability_info.js';import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';import * as vtu from '../../validation_test_utils.js';import { createQuerySetWithType } from './common.js';export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);g.test('occlusion_query,query_type').desc(`Tests that set occlusion query set with all types in render pass descriptor:- type {occlusion (control case), timestamp}- {undefined} for occlusion query set in render pass descriptor`).params(u => u.combine('type', [undefined, ...kQueryTypes])).fn(t => {const type = t.params.type;if (type) {t.skipIfDeviceDoesNotSupportQueryType(type);}const querySet = type === undefined ? undefined : createQuerySetWithType(t, type, 1);const encoder = t.createEncoder('render pass', { occlusionQuerySet: querySet });encoder.encoder.beginOcclusionQuery(0);encoder.encoder.endOcclusionQuery();encoder.validateFinish(type === 'occlusion');});g.test('occlusion_query,invalid_query_set').desc(`Tests that begin occlusion query with a invalid query set that failed during creation.`).paramsSubcasesOnly(u => u.combine('querySetState', ['valid', 'invalid'] as const)).fn(t => {const occlusionQuerySet = vtu.createQuerySetWithState(t, t.params.querySetState);const encoder = t.createEncoder('render pass', { occlusionQuerySet });encoder.encoder.beginOcclusionQuery(0);encoder.encoder.endOcclusionQuery();encoder.validateFinishAndSubmitGivenState(t.params.querySetState);});g.test('occlusion_query,query_index').desc(`Tests that begin occlusion query with query index:- queryIndex {in, out of} range for GPUQuerySet`).paramsSubcasesOnly(u => u.combine('queryIndex', [0, 2])).fn(t => {const occlusionQuerySet = createQuerySetWithType(t, 'occlusion', 2);const encoder = t.createEncoder('render pass', { occlusionQuerySet });encoder.encoder.beginOcclusionQuery(t.params.queryIndex);encoder.encoder.endOcclusionQuery();encoder.validateFinish(t.params.queryIndex < 2);});