OpenGL/DirectX 같은거 말고, GUI API(WINAPI, GTK 등)도 말고
걔네들 내부에서 쓰는 제일 로우레벨한 call 이 있을거아니야 GPU framebuffer 메모리 영역에 32비트컬러 픽셀값 하나 바꾸는 콜이...
그게뭐임?
OpenGL/DirectX 같은거 말고, GUI API(WINAPI, GTK 등)도 말고
걔네들 내부에서 쓰는 제일 로우레벨한 call 이 있을거아니야 GPU framebuffer 메모리 영역에 32비트컬러 픽셀값 하나 바꾸는 콜이...
그게뭐임?
해당 댓글은 삭제되었습니다.
나도 밑에 댓글 달았어... 다시 쓰자면 비디오 어댑터에 맵핑된 메인메모리가 결국은 그래픽카드에 있는 VRAM 영역이 맞고, VRAM에 접근하는 표준 API를 알려달라는 말임... 시스템마다 다를거라는건 나도 이해하니깐 적어도 대중적으로 사용되는 NVIDIA에서...
cpu에서 직접하는게 아니라 cpu-gpu간에 통신을 하는거임. 그 통신은 드라이 단에서 제어하고.
드라이버단
그니깐 상위 소프트웨어 단에서 드라이버한테 프레임버퍼 속 32비트 픽셀값 하나 바꿀려고할때 무슨 함수를 호출하냐고... 왜 질문을 이해를못해
너가 생각하는것처럼 그렇게 간단하지가 않으니까 그렇지. gpu마다 설계가 다 다르고, 애초에 gpu제조사에서 opengl/directx api만 제공하지 드라이버랑 직접 연결하는 기능은 제공 안함.
프갤이 아니라 nvidia나 amd가서 물어라
그니깐 엔비디아 기준으로라도 설명해달라니깐... 플랫폼은 리눅스에서
리눅스에선 표준함수가 있겠지 드라이버에 명령을 내리는... 단지 프레임버퍼 주소만 달라지는거고
애초에 그런 '함수'같은건 없음. cpu에서 매번 그렇게 호출하면 퍼포먼스가 나오겠냐
쉐이더가 gpu에서 돌아가는 바이너리로 컴파일되서 실행되는거지
아니 시발 그럼 opengl 이나 gtk 같은게 어떻게 존재한다고 그런 미친소리를해 ㅋㅋㅋㅋㅋ 걔네들은 도대체 뭘로 드라이버에 통신하는데
쉐이더가 여기서 왜나와? 전혀 다른 부분인데 ㅋㅋㅋ 게다가 쉐이더도 결국 GPU 에 PCIe 로 전달해줘야하는 데이터자나 그런식으로 데이터를 전달하라고 드라이버에 제일 로우레벨 하게 전달해줄수있는 콜이있어야하는데 그게 뭐냐고 그런게없으면 opengl이나 gtk가 존재할수조차없지
야... 너는 그냥 GPU 파이프라인 아무것도 이해 못하고있는거같다 그냥 학부책 부터 다시배워라 뭔 프레임버퍼 얘기하는데 쉐이더가 나오ㅓ
야 답답해서 내가 찾았다
https://en.wikipedia.org/wiki/Linux_framebuffer
https://www.x.org/archive/X11R6.8.0/doc/fbdev.4.html
뭔 씨-발 쉐이더 타령이야 미친놈아
뻘소리 해서 미안. 근데 opengl은 저거랑 무관한거 아니냐
그래픽 드라이버의 dll 안에 어딘가에 들어 있겠지. 근데 그건 gpu 개발사의 지적재산이라 공개를 하는지는 모르겠다. 유저 입장에서gpu랑 vram 사용하고 싶으면 OpenGL 같은 API 쓰는 수밖에 없는 것 같음. 혹시 모르니 gpu 디버거들이 어떤 원리로 프레임버퍼 내용을 알려주는지 조사해봐. 잠깐 검색해 봤는데 난 못 찾겠다.