2010-03-29 20 views
5

Tôi đang cố gắng sử dụng trình đổ bóng hình học tầm thường nhưng khi chạy trong Shader Builder trên máy tính xách tay có GMA X3100, nó sẽ quay trở lại và sử dụng phần mềm kết xuất. Theo số this document GMA X3100 hỗ trợ EXT_geometry_shader4.Trình tạo bóng hình học GLSL hoạt động trên GMA X3100 theo OSX

Đầu vào là POINTS và đầu ra là LINE_STRIP.

gì sẽ được yêu cầu để làm cho nó chạy trên GPU (nếu có thể)

uniform vec2 offset; 

void main() 
{ 
    gl_Position = gl_PositionIn[0]; 
    EmitVertex(); 
    gl_Position = gl_PositionIn[0] + vec4(offset.x,offset.y,0,0); 
    EmitVertex(); 
    EndPrimitive(); 
} 
+0

Bạn chắc chắn bạn đang sử dụng OSX> = 10.5? Có vẻ như EXT_geometry_shader4 không được hỗ trợ ở phiên bản 1.4 trở xuống. – genpfault

+0

Vâng tôi đang ở trên 10.6.2. – GameFreak

Trả lời

1

tôi đã tìm thấy công cụ này OpenGL Extensions Viewerthực sự hữu ích trong việc theo dõi xuống những loại vấn đề. Nó chắc chắn sẽ cho phép bạn xác nhận tuyên bố của Apple. Điều đó nói rằng, wikipedia states rằng hỗ trợ GLSL chính thức cho trình tạo bóng hình học về mặt kỹ thuật là tính năng OpenGL 3.2.

Có ai biết nếu triển khai EXT_geometry_shader4 hỗ trợ cú pháp GLSL hay không yêu cầu một số định dạng phần cứng hoặc trình điều khiển cụ thể?

0

Điều thú vị là tôi đã nghe nói rằng các tuyên bố về tính tương thích của Intel liên quan đến các GPU tích hợp này đôi khi bị phóng đại hoặc chỉ sai. Rõ ràng X3100 chỉ hỗ trợ OpenGL 1.4 và thấp hơn (hoặc vì vậy tôi đã nghe nói, lấy điều này với một hạt muối, vì tôi không thể xác nhận điều này).

2

Từ tài liệu bạn liên kết với tài liệu, chắc chắn xuất hiện tài liệu cần được hỗ trợ.

Bạn có thể thử

int hasGEOM = isExtensionSupported("EXT_geometry_shader4");

Nếu nó trả về trong khẳng định bạn có thể có một vấn đề khác ngăn không cho nó làm việc.

Cũng theo GLSL Spec (1.20.8) "Bất cứ hành vi mở rộng trước tiên phải được kích hoạt. Chỉ thị để kiểm soát hành vi của trình biên dịch đối với phần mở rộng với được khai báo với các chỉ thị #extension"

tôi không thấy bạn sử dụng chỉ thị này trong mã của bạn vì vậy tôi có thể đề nghị

#extension GL_EXT_geometry_shader4 : enable

ở phía trên cùng của khối mã shader của bạn.

-2

Trên máy tính xách tay HP, với Intel x3100 sử dụng trình điều khiển Windows 7 x64 (v8.15.10.1930 (9-23-2009)) trực tiếp từ trang web của Intel, phần mở rộng "EXT_geometry_shader4" (hoặc bất kỳ biến thể nào) Không được hỗ trợ. Tôi đã xác nhận điều này theo chương trình và sử dụng công cụ "GPU Caps Viewer" (liệt kê các tiện ích mở rộng được hỗ trợ phát hiện, trong số những thứ hữu ích khác). Vì Windows có xu hướng trở thành chủ đề chính của việc phát triển trình điều khiển từ bất kỳ nhà cung cấp nào, nên không có trình điều khiển OSX nào tốt hơn, và có thể trên thực tế thậm chí còn có các phần mở rộng được hỗ trợ ít hơn.