网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 其他技术区 > 计算机图形学 >

webgpu学习问题,遇到了create graphics pipeline state

时间:2025-02-24 22:12

人气:

作者:admin

标签:

导读:在学习webgpu并渲染图像时发生create graphics pipeline state failed with E_INVALIDARG (0x80070057)错误,图像无法成功渲染。 html代码: const pipeline = device.createRenderPipeline...

 

在学习webgpu并渲染图像时发生create graphics pipeline state failed with E_INVALIDARG (0x80070057)错误,图像无法成功渲染。

html代码:

const pipeline = device.createRenderPipeline({
            // 管线布局配置
            layout: 'auto',
            // 顶点着色器配置
            vertex: {//顶点相关配置
                module: device.createShaderModule({code: vertex}),
                entryPoint: "main",
                buffers: [// 顶点所有的缓冲区模块设置
                    {//其中一个顶点缓冲区设置
                        arrayStride: 3*4,//一个顶点数据占用的字节长度,该缓冲区一个顶点包含xyz三个分量,每个数字是4字节浮点数,3*4字节长度
                        attributes: [{// 顶点缓冲区属性
                            shaderLocation: 0,//GPU显存上顶点缓冲区标记存储位置
                            format: "float32x3",//格式:loat32x3表示一个顶点数据包含3个32位浮点数
                            offset: 0//arrayStride表示每组顶点数据间隔字节数,offset表示读取改组的偏差字节数,没特殊需要一般设置0
                        }]
                    }
                ]
            },
            // 片元着色器配置
            fragment: {
                module: device.createShaderModule({code: fragment}),
                entryPoint: "main",
                targets: [{
                    format: format
                }],
            },
            // 绘制图元配置
            primitive: {
                topology: "triangle-list",//三角形绘制顶点数据
            }
        });

wgsl代码:

//顶点着色器代码
const vertex = /*wgsl*/`
    @vertex
    fn main(@location(0) pos: vec3<f32>) -> @builtin(position) vec4<f32>{
        // var pos2 = vec4<f32>(pos,1.0);//pos转齐次坐标
        // pos2.x -= 0.2;//所有的顶点x坐标偏移0.2
        // return pos2;//返回顶点数据,渲染管线下个环节使用
        return vec4<f32>(pos,1.0);
    }
`;

  

问题:经过一系列测试发现一个不理解的错误。当管线shaderLocation: 0 ;顶点着色器@location(0)不能正常显示,会出现create graphics pipeline state failed with E_INVALIDARG (0x80070057)错误。但当我将这两个值修改为1,图像正常渲染。令人费解!有懂得大神指教一下

 

 

 

学向勤中得,萤窗万卷书。
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信